flatten.ss

Scheme

Public Domain

Convert a list of lists to a flat list

Download (right click, save as, rename as appropriate)

Embed

1
2
3
4
5
6
7
8
9
(define (flatten li)
 (reverse
  (let loop ((accum '()) (porsi li))
   (if (null? porsi) accum
    (loop
     (if (list? (car porsi))
      (append (loop '() (car porsi)) accum)
      (cons (car porsi) accum))
     (cdr porsi))))))