よちよち.hs 第3回 #yochiyochihs
いつからか気になっていたHaskell、なかなか手を出せずにいたのですが、
よちよち.rb 主催者の @yucao24hours さんがHaskellに挑戦しているということで、便乗させてもらいました。
- 作者: Miran Lipovača,田中英行,村主崇行
- 出版社/メーカー: オーム社
- 発売日: 2012/05/23
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 580回
- この商品を含むブログ (73件) を見る
こちらの本を読み進めていきます。
実は、ミートアップに参加できるかどうか直前まで悩んでいて、結局当日の朝になって慌てて準備をした…という体たらく。
どうにか実行環境を作って本をざーっと読んで行きましたが、当然ついていくのが大変でした。反省。
プログラミング言語でいえば、Rubyしかやったことない(あとちょっとだけJavaScriptとかVBA)人がHaskellをやるとどうなるのでしょうか。
「遅延評価」とは
Haskell は怠け者です。特にそうしろと言われた場合を除いては、結果が必要になるまで関数を実行しないのです。この振る舞いは、専門用語では遅延評価といいます。
と本にありますが、なんだか抽象的でよくわかりません。
これは、こういうことのようです。
def func(x, y) if x > 0 x + 1 else y + 1 end end a = 10 func(1, a + 3) #=> 2
上記のようなとき、funcの第二引数にあるような ( a + 3 ) の部分は、本当に必要になるまで評価されないということのようです。
ふむ。
「型クラス」とは
関数を定義するときに型も書くんですね。
型を意識して書くというのが新鮮。
そういえばVBAでも変数を宣言するときに型も一緒に書いていたっけ。。
しかしまだまだイメージできません。理解できていない。
型、あるらしい。くらい。
本では「型クラス初級講座」(27ページ)ということで、いろんな型の紹介がはじまったところです。
Hello World したかった
この日ほんとにはじめてHaskellを触ったので、ひとまずHello Worldをしたいなって思ったのですが、
この本でHello Worldできるのは第8章のようです。
そこでHaskell先生から教わったExampleから写経してHello Worldしてみました!
ひとまず初日はここまで!