ゆの in Haskell

http://d.hatena.ne.jp/sumim/20080709/p1
を始めとして色んな方々がやっているので私も。


ちょっと気色の悪い方法を使いました。

#define _ 1
#define X 365

main = X / _ / X < "Please see next week!"
    where (<) a b = if a == 1.0
                    then do print ("Hidamari Sketch 365 "++b)
                    else do print ("owata"++b)
          infix 0 <

ghc -cpp yuno.hs

ghcで動きます。これはどういう事かと言うと見れば分かりますがghcではプリプロセッサを走らせる事が出来るので、そいつを使ったと。
で走るプリプロセッサはcppなので、まんまdefineマクロが使える訳ですね。
まぁこの辺はghcソースコード読もうとしていた時に見つけたやつなんですが。


日本語対応もさせる事が出来ますが、それはちょっと本質的では無い(?むしろそれが肝心!!?)気がするのでこのverでは取りあえず無しという事で。

まぁ単純に日本語で込むと

"\12402\12384\12414\12426\12473\12465\12483\12481\&365 \26469\36913\12418\35211\12390\12367\12384\12373\12356\12397!"

こうなります。
もっと美しくHaskellでも書けるとは思うのですが・・・。


_の扱いが難しい関数型言語で如何にして攻略するのかが見てみたいですね。色んな言語の色んな面が見られそうな気がする。