ブックマーク / ruicc.hatenablog.jp (1)

  • リテラルが多相的であること、もしくは値コンストラクタの要らないデータ構造 - think and error

    を適当に開いて読んでみるということをたまにする。 Real World Haskell(RWH)のデータ構造の章。 ghci> 3 * 2 + 4 10 ghci> prettyShow $ 3 * 2 + 4 "3 * 2 + 4" こんな感じのものが書いてあった訳だ。 僕には何が起こっているか全然分からなくて、一体どんな言語拡張使ってるんだこの野郎と思いつつその章をざっと見たけど何も説明見つからなかったりして混乱。 結論を言えば2,3,4はよく知っている数値リテラルで、(+)も(*)もよく知ったNumのメソッドだった。僕が思っていたより色々出来たというだけで。 僕が数値リテラル見たときだけ何故かCやPHPといったあちらの言語を想定してしまっていたことが原因だった。 加えてHaskellでデータ構造を作るには、値コンストラクタ(もしくはそれ相当の関数)が必要だと思っていたためだった。

    リテラルが多相的であること、もしくは値コンストラクタの要らないデータ構造 - think and error
  • 1