2010-02-26から1日間の記事一覧

Yコンビネータ

フィボナッチと階乗やってみる。 > let y f = f $ y f > :i y y :: (b -> b) -> b -- Defined at <interactive>:1:4 > y (\f n -> if n < 2 then n else f (n-1) + f (n-2)) 7 13 > y (\f n -> if n < 2 then n else f (n-1) + f (n-2)) 100 Interrupted. ← (´・ω・`)ショホ</interactive>…

RWH 4章練習問題1

なんか作るのにすごい時間かかった・・・ リストを述語で分割 splitWith :: (a -> Bool) -> [a] -> [[a]] splitWith f [] = [] splitWith f xs = case span f xs of (a,b) -> a : (splitWith f $ snd $ span (not . f) b) > splitWith (/= 'a') "igaiahaidih…