(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

srfi-1のfilterってこんな感じ??

これの追記を書いたときに、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
  • 述語が真になった要素だけを残したリストが返ってくる

かな??

*1:hogeより大きいとかそういう述語を自分で作ればok??