再帰勉強中
とても初心者だけれども、こんな過程も公開したらいつか役に立つかもしれない。
Scheme 入門 7. 繰り返し
http://www.geocities.jp/shido_takafumi/lisp/scheme7.html
1.リストの要素の数を数える関数 my-length。 (ちなみに length という関数があらかじめ定義されています。)
guile> (define my_length (lambda (list) (if (null? list) 0 (+ 1 (my_length (cdr list)))))) guile> (my_length '(1 2 3 4)) 4
2. リスト (list) から要素 (e) を取り除いたリストを返す関数。
(define remove_elements (lambda (list e) (cond ((null? list) '()) ((eqv? e (car list)) (remove_elements (cdr list) e)) (else (cons (car list) (remove_elements (cdr list) e)))))) (remove_elements '(1 4 4 4) 4)