再帰勉強中

とても初心者だけれども、こんな過程も公開したらいつか役に立つかもしれない。
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)