March 26, 2008
(define (flatten ls) (cond ((null? ls) ‘()) ((pair? ls) (append (flatten (car ls)) (flatten (cdr ls)))) (else (list ls))))
(define (rev a)
 (if (list? a) (reverse (map rev a))
   a)) (define (flatten a)
 (if (list? a) (apply append (map flatten a))
   (list a))) (define (for-each-tree f g a)
 (let self ((a a))
  (if (list? a) (apply g (map self a))
    (f a))))
(define (sum tree) (for-each-tree + + tree))
(define (map-tree f tree) (for-each-tree f list tree))
March 22, 2008
●画面下の「Install」をタップして、「Sourses/Community Sources」をインストール。 ●「System/BSD Subsystem」をインストール。
March 21, 2008
このように途中の式が膨張する原因は,再帰呼出しが自分自身と他の演算の組み合わせになっていることにある. 再帰的な関数を,自分自身のみを呼び出すことで値が得られるような自己末尾再帰呼出しの形で表すことができれば,中間式の膨張を避けることができる.
March 14, 2008
March 10, 2008