2009-11-25
ライフゲーム
リハビリがてら、Haskellでなんか書きたくなってきた。ライフゲームを、できればgolf的に短く書きたい:
import Data.List (transpose, tails) -- rule for Conway's Game of Life conway 0 3 = 1 conway 1 2 = 1 conway 1 3 = 1 conway _ _ = 0 step rule edge m = opmtx rule m $ neighbor edge m neighbor edge m = opmtx (-) (sum3x3 $ edge m) m sum3x3 = verthorz $ foldl1 (opmtx (+)) . take 3 . tails opmtx = zipWith.zipWith verthorz f = transpose.f.transpose.f -- boundary condition wrap = verthorz (\m -> [last m] ++ m ++ [head m]) clamp = verthorz $ map (\s -> [0] ++ s ++ [0]) -- how to execute: runhaskell LifeGame.hs < test.txt {- test.txt: ..... ..*.. ...*. .***. ..... -} main = getBoard >>= runGame 100 conway wrap getBoard = getContents >>= return . map (map c2i) . lines runGame n rule edge = mapM_ (\m -> dispBoard m >> putStrLn "====") . take n . iterate (step rule edge) dispBoard = mapM_ putStrLn . map (map i2c) c2i '*' = 1 c2i _ = 0 i2c 0 = '.' i2c 1 = '*'
point freeスタイルには徹底できないなー。できればグラフィカルにしてUIとかもつけてみたいね。
2009-11-24
bloxorz
YouTube- bloxors: an OpenGL Logic Game written in Haskell
WindowsではOpenGLが入ってないのでコンパイルはできてない。ソースを見る限り、管理している状態はゲームとブロックしかなくて、updateでキー入力を見て状態を更新、renderで描画、というふうにまっとうに処理してるように見える。
2009-11-20
Haskellナイト
Haskellナイトに行ってきた。Tシャツ目当てで「Real World Haskell」と、300円安いというので「プログラミングHaskell」を買ってみた。
第一部には「入門Haskell」を書かれた向井さんも出ていた。Haskellに飽きたってのと、別にHaskellで書いても他のCとかで書いても同じってのと、難しい問題はHaskellで書いても難しいってことを言っていた。悲しいけど、なんとなく言いたいことはわかる。
モナドの話とか。山本さんが「モナドは型クラスの一種」のような説明をされて、わかったような気になったりならなかったり。
Typeclassopediaは良いという話なので読んでみよう。
第二部のHaskellゴング、私的にはtanakhさんのOpenGLを使ったプレゼンツールというのが特に気になった。DOMに丸投げしてるJavaScriptでプレゼンツール作るのとは全然労力違うんじゃ…と思ったけど、パワポみたいに現代風のページ遷移のエフェクトの付いたプレゼンツールになっていてすげーと思った。
あとkeqhさんのforkIOを使ってGHCiからSDLの窓と通信するのとか、酒井さんの自然言語をラムダ式で解釈する体系PTQのHaskell実装とかmaoeさんのParsec3でパース中にIOで別ファイルを読み込んで処理できるとか面白かった。
今度4月にSimon Peyton-Jones氏が来日されるということなので、そのときにまたこういう会があったらなんか発表できるように仕込んでおこう。
2009-11-03
2009-11-01
Haskell関連イベント目白押し、盛り上がってまいりました!
Haskellナイト、ゴングに出てみたいからなんか発表できるネタないかと考えてたんだけど、全然思いつかないのでしかたがないから観戦でいいかと思って申し込んでみると、整理番号20番とか…大丈夫か?
nobsunのつぶやきを見てたら、eyasuyuki氏のRTで
Twitter / ENDO Yasuyuki: Haskellゴング応募ないなあ。 http://b ...
Twitter / ENDO Yasuyuki: Haskellゴング応募ない。Haskellerの勇 ...
10/22なんで1週間以上前のつぶやきだけど、うーんやっぱなんか発表してみたいなぁ。
HIMA & 忘年会 - あどけない話 忘年会出てみたいなぁ



