2009-11-12から1日間の記事一覧

ちょっと違った処理にしてみる

ここまでのduplicateと代数的データ型というやつを使って、数直線上の線分の集合内に交わるものがあるかどうかを判定するプログラムを書いてみます(まんまSICPっぽい展開ですが・・・)。 duplicate cond (x:xs) = any (cond x) xs || duplicate cond xs dupli…

(x==)について

昨日のプログラムは元々、(x==)の部分が、ほかの関数になってもいいように切り出していたんですね、実は。なんで、duplicateのこの部分を、引数として与えられるようにしてみます。 duplicate cond (x:xs) = any (cond x) xs || duplicate cond xs duplicate…

elemについて

elem関数 - 結城浩のHaskell日記 - haskell によると、anyを使って書けるらしい。つまり、昨日のは、こうなります。 duplicate (x:xs) = any (x==) xs || duplicate xs duplicate _ = False any f xsで、f(x)を満たすx∈xsが存在すればTrueを返す。記号論理で…

まずはコメントのコードを解析してみる

duplicate (x:xs) = x `elem` xs || duplicate xs duplicate _ = False '`'(バッククォート) → 2引数関数を、引数の間に書ける。V(S,C)みたいな関数を、SVCと表記できるということか。 elem → elem a [a]で、第2引数のリストに第1引数の要素が存在するかど…

Haskellの続き

昨日の日記に、神のメッセージいただいたので、これを基にもうちょっと深堀してみようと思います。