これの追記を書いたときに、srfi-1のfilterに興味持ったのでちょっと分かったことだけメモっとく。
一般形としてはこんな感じかな??
(filter predicate list)
なんか無名関数とか渡せるらしい
(filter (lambda (x)
(= (modulo x 2) 0))
(iota 100))
自分で作った述語も渡せるぽい
(define (my-even? n)
(= (modulo n 2) 0))
(filter my-even? (iota 100))
分かったこと
- filterに対する被演算子は2つだけ
- リストの要素1つ1つに対して述語が効く
- なので2つ引数が必要な<,>,=あたりは使えない*1
- 述語が真になった要素だけを残したリストが返ってくる
かな??