2006-12-04から1日間の記事一覧
range 関数を考える。シンプルに、 (define (range a b) (if (> a b) [] (cons a (range (+ a 1) b))))これは、最後に呼び出される関数が cons なので、末尾再帰ではない。末尾再帰にすると、 (define (range a b l) (if (> a b) (reverse! l) (range (+ a 1…
range 関数を考える。シンプルに、 (define (range a b) (if (> a b) [] (cons a (range (+ a 1) b))))これは、最後に呼び出される関数が cons なので、末尾再帰ではない。末尾再帰にすると、 (define (range a b l) (if (> a b) (reverse! l) (range (+ a 1…