プログラミングGauche 練習問題6章P.56

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

(define (length l)
(if (null? l)
0
(+ 1 (length (cdr l)))))
length
gosh> (length '(a b c))
3

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

gosh> (define (filter proc l)
(if (null? l)
l
(if (proc (car l))
(cons (car l) (filter proc (cdr l)))
(filter proc (cdr l)))))
filter
gosh> (filter odd? '(1 2 3))
(1 3)

コメント

人気の投稿