#:g1: pfcでL-99 (P07 リストの平坦化)

Posted 2008-05-26 02:57:00 GMT

-(http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html)
なんだか無理矢理ですが、折角なのでカリー化してみました。

(flatten '((0 (1 ((((2 (((((3 (((4)))))))) 5))))) (6 (7 8) 9))))
;=> [0 1 2 3 4 5 6 7 8 9]

(define (flatten lst) (if (null? lst) () ((if (atom (hd lst)) (cons (hd lst)) (++ (flatten (hd lst)))) (flatten (tl lst)))))

comments powered by Disqus