プログラミング Gauche 練習問題を解く[6.5]

とりあえず解答を晒してみます。

不慣れながらなんとか解いていきます。

今回は6章の5の練習問題です。



■リストの長さを計算するlengthを直接(foldを使わずに)定義してみる



(define (length lis)
(if (null? lis)
0
(+ 1 (length (cdr lis)))))


■リストの中から、条件を満たす要素だけを抜き出したリストを返すfilterを定義してみる

これの「条件を満たす」部分をどうすれば良いのかわからず手詰まり。条件式のリスト、例えば'(< a b)を引数にするのか、それとも比較を行う関数を引数にするのか。 ん0また明日。