2011/08/07

flatten

このflattenカッコイイ
(use srfi-1)

(define (flatten xs)
  (if (pair? xs)
      (append-map flatten xs)
      (list xs)))

自分はこう書いてた
(define (flatten tree)
  (fold-right (lambda (e acc)
                (if (pair?  e)
                    (append (flatten e) acc)
                    (cons e acc)))
              '() tree))

Coders at Work プログラミングの技をめぐる探求

0 件のコメント:

コメントを投稿