便乗 ゆの in Haskell

http://d.hatena.ne.jp/ranha/20080709/1215658800

まぁ少なくとも片方は #define 使う必要ないですよね。

#define _ X
import Prelude hiding((<),(/))

data X = X
a / b = X
a < b = putStrLn $ "Hidamari Sketch 365 " ++ b
main =

    X / _ / X < "Please see next week!"

#define 使ったら負けかなとは思うんですが、_ はどうなんでしょう…。パースエラー出ない場所が限られてますしねぇ。

追記

Haskell で日本語を使うには: http://ja.doukaku.org/comment/3513/ , http://hackage.haskell.org/cgi-bin/hackage-scripts/package/utf8-string-0.3

結局 _ 対策はこんなのしか思いつきませんでした。ごめんなさいごめんなさい。

import Prelude hiding((<),(/))
import qualified System.IO.UTF8 as U
data X = X
a / b = X
a < b = U.putStrLn $ "ひだまりスケッチx365 " ++ b
__  = X
main =

    X / __ / X < "来週も見てくださいね!"

ちょっとばかり口元が緩んでしまう年頃なんです。とかそんなネタじゃ駄目ですか。
OCamlとかでも使えるチートですが、格好悪いのでやめたほうがいいと思います。
まともなのは誰かえらい人がやってくれるはず。



せっかくなので少し遊んでみた。

(/) を気持ち悪く使ってみたりとか。

import Prelude hiding((<),(/))
import qualified System.IO.UTF8 as U

data T = X | Y | Z [T]
instance Show T where
    show X    = "ひだまり"
    show Y    = "スケッチ"
    show (Z ts) = foldr shows "x365 " ts

X / t    = Z [t]
Y / t    = t
(Z ts) / t = Z (t:ts)

a < b = U.putStrLn $ shows a b
__  = Y
main =

    X / __ / X < "来週も見てくださいね!"


右から畳んでみたりとか。

import Prelude hiding((<),(/))
import qualified System.IO.UTF8 as U

data T = X | Y | Z
instance Show T where
    show X = "ひだまり"
    show Y = "スケッチ"
    show Z = "x365 "

infixr 0 /
(/) t = (putStr (show t) >>)
(<) t = U.putStrLn . shows Z
__  = Y
main =

    X / __ / X < "来週も見てくださいね!"

続き(?)