Haskell
Haskellで main = putStrLn $ show Nothing こうするとエラーになる。 たとえばJust 0ならMaybe IntでJust "one"ならMaybe Stringって分かるけど NothingはMaybeだってことしか分からないから駄目なのだろう。 どのみち結果は"Nothing"なんだからいーじゃね…
Haskellの構文解析 - ヴィアシュビニッヒ!?を考えていたとき 「Haskellで実装されたコンパイラというのは設計上何パスであろうとも 遅延評価のおかげで常に実質1パスになる」 と思っていたのだけど よく考えてみれば、そんなに甘くない。たとえば字句解析…
Haskellの構文解析のやり方を探してウェブ上を右往左往していると 良さげなページを見つけた。 オフサイドルールの処理 - soutaroブログ そして公式情報はこれらしい。 Haskell 98 Syntax Haskell 98 Syntax(日本語) 空白込みで字句解析して、レイアウトし…
最近少しParsecで遊んでる。 ところで皆は「」をなんて呼んでる? 異論が無ければ「くぱぁ」でいいと思うんだけど。
main = do putStrLn $ f 0; putStrLn $ f '/'; f :: Show x => x -> String f x = show x これは問題なく動いて 0 '/' を出力する。だけど main = do putStrLn $ f 0; putStrLn $ f '/'; f :: Show x => x -> String f 0 = "zero" f x = show x はコンパイル…
Haskellは面白いね。 でも難しい。 上手に書かれたコードは唸るほど綺麗なのだけど、 何が出来て何が出来ないのかが判りにくい。 いっぺん真面目に仕様を読んだ方がいいのかね?(コメント希望) main = putStrLn $ show $ f == f f = "hello" ++ f {-無限に…