2006-06-11から1日間の記事一覧

Yet Another Haskell Hacker

yahh = (putChar `mapM_`) =<< return (foldr (++) (map pred "\v") $ (concat.transpose.((flip(map) [id,((flip(replicate) " ").length)]). (flip($)))) $flip (.) (words. map succ) (map (\xs -> toUpper(((head.head.tails)xs)):tail(xs)) ) $ "xds\US…

・・・・

*Main> sub 4 24 (0.00 secs, 0 bytes) *Main> sub 4 24 (0.00 secs, 3062564 bytes) *Main> sub 4 24 (0.00 secs, 0 bytes)意味が分からない。 気にしない方がよさそう。

1〜10000までの合計を求めるプログラム in Haskell

Prelude> sum $ take 10000 $ iterate (+1) 1 50005000 cmTypeOfName: it it :: Integer (0.06 secs, 3128088 bytes) Prelude> sum [1..10000] 50005000 cmTypeOfName: it it :: Integer (0.02 secs, 0 bytes) Prelude> foldr (+) 0 [1..10000] 50005000 cmT…

let式

http://haskell.g.hatena.ne.jp/hyuki/20060611/letghciで変数束縛したり関数束縛するときはletが便利だと今日気付く。 (最後に評価した値が変数itに束縛されるのも便利) *Main> [['a'..'z'],['A'..'Z']] ["abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOP…

unfoldrでevery関数

http://www.hyuki.com/haskell/200412#i20041222095833 every' n xs = unfoldr f xs where f [] = Nothing f cs = Just (splitAt n cs)Maybeの有り難さがちょっと分かった