Haskell

wxHaskell (その4)

Haskellでゲーム計画もいよいよ大詰めである。 これまでHaskellではGUIアプリを作ったことが無かったため (もっとも、日本でHaskellでGUIアプリを作ったという話を聞いたことが無いけど) その道程は困難を極めたが、これまでにひとつづつその障壁を取り除い…

非手続き型言語の生成するコードとは

昨日の最後のプログラム、リソースをテキストでべた打ちしながら これはまともなアプリケーションなら書き換えられんように しなければならないなぁ、そんなもん簡単な暗号化でも施しといたらいいやん? でもそれだと逆アセしたら簡単に解析されてしまうんじ…

wxHaskell (その3)

前回積み残しのコンソールが出てしまう問題だが、 PEファイルのフォーマットを調べるとSubsystemのフラグに それっぽいものが有ったのでいじってみると見事出なくなった。 これにて解決である。(これで良いのか…?) 後学の為に場所を記しておく。 (こんなとこ…

wxHaskell (その2)

GUIもHaskellでやりたいよ〜ということで(そうだったのか?) 昨日からwxHaskellをいじっているのだが、 色々と問題がありそうだったのは昨日書いたとおりである。 ファイルサイズ 適当にZipで圧縮すると1.58MBに、 7Zipで圧縮すると970KBぐらいになった。 こ…

wxHaskell

Haskellは良い言語だと思うのだが、 世間での認識を数学者のおもちゃレベルから汎用実用的言語へと改めるには やはりHaskellでゲームをばりばり書くとかの必要があるだろう(ほんまかいな?) というわけでGUIである。 Windowが出せないと最近では馬鹿にされる…

問題A再び

コンパイラ作るつもりがなぜか問題Aの改良を… Scheme的にはCPSだけど、Haskell的には関数合成だでよ!! ということで、再実装。 入れ替えを関数にして、それを合成して、それに0を適用。 ついでに入力のパーズをちょっとだけ手直し。 全体的に幾分かすっきり…

数当てゲーム in Haskell

純粋関数型言語を使う上でもっとも問題となるのはやはりIOだろう。 現在用いられている方法はおおよそ3つある。 ストリーム モナド 一意性型付け Haskellは主にモナドを使うわけであるが、 入出力が文字列に限定される場合はinteract String) -> IO() の型を…

問題A in CPS

問題Aはもともと簡単な問題だけど、 CPSでもっと簡単に解けるようである。 つまり、各シャッフルを置換と考えるわけですね。とりあえずHaskellで。 solve n ls = n - (foldr inner id ls 0) where inner (p,c) f i = f $ if i 4 入出力つき。 main = getCont…