「プログラミングGauche」P.56 練習問題
- リストの長さを計算するlengthを直接(foldを使わずに)定義してみる
- リストの中から、条件を満たす要素だけを抜き出したリストを返すfilterを定義してみる
length手続き。
これはいまいち。nullでもリストでもないものが渡されたときの処理を書くべきかも。
;; リストの長さを計算するlengthを直接(foldを使わずに)定義してみる (length2 '(1 2 3 4 5)) ;; => 5 |
filter手続き。
これは前回(find)の最後のとこで同じのをすでに書いてた。
;; リストの中から、条件を満たす要素だけを抜き出したリストを返すfilterを定義してみる (filter even? '(1 2 3 4 5 6 7 8 9 10)) ;; => (2 4 6 8 10) |
このfilterだと入れ子のリストは処理できないですね
返信削除たとえば
(1 2 (3 4) 5 (6 7))
こんな感じでどうでしょう・・・
返信削除http://valvallow.blogspot.com/2009/12/scheme-filter.html