2006-04-23から1日間の記事一覧

仮想的な無限列(10)

今回の主な修正点は… Callの中でlambdaを返すのは無駄なのでやめた。すぐ評価。 Zipの定義にZipが出てきていたのをやめた。再帰呼び出しはCallで作る。 シーケンスの頭に要素を逆詰めするUnshiftOfを作った。 シーケンスのひながたOf...自体のシーケンスを作…

仮想的な無限列(11)

今回の主な修正点は… 累積的な処理を行うAccumulateWithを作成。 それを元にしてSumOfとProductOfを作成。 それを元にしてSumOfNaturalPlus, ProductOfNaturalPlusを作成。 class NilClass def to_s "_" end end Call = lambda {|f, *a| f[f, *a]} Sequence …

仮想的な無限列(12)

今回の主な修正点は… AccumulateWithの引数をfold風にした。 念願のMapを作成。 無意味な同一引数渡しを省略(op, eachfなど)。 Mapを使ってFibonacciの各項が偶数か奇数かを調べてみる。 Call = lambda {|f, *a| f[f, *a]} Zip = lambda {|op, s, t| Call[ l…