2006-05-21から1日間の記事一覧

Concurrent Clean : 再帰データ構造の生成

たとえば、整数のリストを受け取って、奇数だけのリストを返す関数は、 oddList :: [Int] -> [Int] oddList [] = [] oddList [i:ir] | isOdd i = [i:oddList ir] = oddList irと定義しますが、これを、 oddList :: [Int] -> [Int] oddList [] = [] oddList […

Concurrent Clean : 遅延評価が便利な点

trivialながら、こういう書き方ができるのは、Cleanが遅延評価だからですね。 f str | size str < 2 = Nothing | isDigit c = Just $ digitToInt c = Nothing where c = str.[1]つまり、最初の条件が偽なら、cは評価されないのでエラーにならない。だから、c…