2011-06-01から1ヶ月間の記事一覧

とある使い捨てコード

module Main where main :: IO () main = interact ruby ruby :: String -> String ruby "" = "" ruby s = case break ('('==) s of (_,[]) -> s (xs,_:ys) -> "<ruby><rb>"++xs++"</rb><rp>(</rp><rt>" ++ case break (')'==) ys of (_,[]) -> error $ "invalid input: "++s (ys',_:zs) </rt></ruby>…

R(n)の列挙

冪集合 - Life Goes Onに美しいコード。リスト内包表記の使い方も素敵。

1to100penさんのヒントにより書いたもの

data List = Nil | List ::: List を使った. Python 読めないので,Pythonの解と同じかどうかは良くわからない. data List = Nil | List ::: List r :: Int -> List r 0 = Nil r n = powerset (r (n-1)) powerset :: List -> List powerset Nil = Nil ::: …

R(n)列挙

て日々(6月1日)にあった問題.すこし考えたんだけど綺麗には書けず.ぐちゃぐちゃ.Natクラスのメソッドにしたり,禁断の unsafeCoerce を使ってしまった.R(5)はちょっと長すぎるのでR(3)とR(4)を表示. ghci> pprR three "{0,{0},{{0}},{0,{0}}}" ghci> pp…