Advertisement
Guest User

Untitled

a guest
Jul 5th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.35 KB | None | 0 0
  1. (define (mk-ackumulator)
  2.     (let ((l '()))
  3.         (case-lambda
  4.             (()  (reverse! l))
  5.             ((x) (set! l (cons (list x) l)))))
  6.  
  7. (define (tree-traversal x ack)
  8.     (if (pair? x)
  9.         (begin
  10.             (tree-traversal (car x) ack)
  11.             (tree-traversal (cdr x) ack))
  12.         (if (null? x)
  13.             (values)
  14.             (ack x))))
  15.  
  16. (define (optimized-flatten x) (tree-traversal x (mk-ackumulator)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement