前回の記事(id:SaitoAtsushi:20080602:1212419400)で書いたコードがイマイチだったので、効率化してみた。
(define (tree->alist tree) (let loop ((tree tree) (t '())) (let ((a (car tree))) (fold (lambda(e r) (loop e (cons (cons (car e) a) r))) t (cdr tree)))))
正確には計ってないけれどだいたい40分くらいかかったと思う。修行が足りない。
Document ID: 3d5c5ca2c6af0507577d6a46ed923ab3