Unyablog.

のにれんのブログ

Haskell入門2日目

二日目

そろそろ温泉いきたい。温泉のロビーで扇風機あたりながらHaskellの勉強したい。

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

第2章

  • 型大事。Android型推論バリバリの言語で書きたいですね。(ウッ

2.1

  • :t 0 としてみたら Num a => a
    • => ってなんぞや…

2.2

  • int たくさん使えて便利
  • C言語はクs
  • pi っていう定数あるのか
    • 昨日言ってた偶数判定のメソッドもそうだけど、こういうの名前空間もなくゴロゴロあると衝突とか怖い気がする
  • circumference , Float を指定すると Float -> Float で、指定しない場合 Floating a => a -> a だった。
    • ちなみに答えは Double のときと同じ桁。
  • haskellのコメントは -- らしい。SQLインジェクションを思い出した

2.3

  • 型変数。聞いたことない
  • なるほどジェネリクス
    • <T> !!!!!
    • それよりもはるかにパワフルらしい

2.4

  • 型クラス。インターフェースなら java で書きまくってるぞ!!
  • 気になってた => 登場。
  • Floating a => a -> a の場合、 Floating が型クラス(≒ interface) で、 => の部分は -> の類というわけではなく型クラス制約を示しているというものか。
    • 要するに Floatinga は満たしておいてね、ということ。
      • 型のインターフェースっぽいというかインターフェースそのものというか(雑
      • Double は確かに満たしてそう。
      • piFloating だった。(そりゃ↑の結果からみて当たり前だ?)
    • http://walk.wgag.net/haskell/typeclass.html
  • Ordpython とか perl にもあるなぁ。意味合いちょっと違うけど。
  • read とか show 覚えておくと便利そう
  • 型注釈。キャストっぽい?
  • [read("1"), 1, 2, 3][read("1"), 1, 2, 3.0] だと後者は Fractional になる。
  • enumjavaにもある!!と思ったけど違うものだった。
  • fromIntegral 、やってることはキャストみたいなもんだ。

感想

  • Hoogleみればいいじゃんとか :t とかその辺がやっと意味わかるようになってよかった。今のところまだ java 程度の型の知識 (?) でなんとかなってる。
  • 記号多くてググラビリティ低いのムズイ、あと記号だと覚えなきゃいけないし(文字だと補完してくれたりドキュメントみたらすぐに分かる)一長一短だなって思った(rubyとかperlのときも思った)
  • ghciとにかく便利ですね…