人気ブログランキング | 話題のタグを見る

RWH の読み方(5) 第2章

What to Expect from the Type System

RWH 第2章 Types and Functions の第3節は What to Expect from the Type System だ。

what to expect from という熟語が分からなかったので google で検索してみたら、What to Expect When You are Expecting という本の題名が引っかかってきた。Expect は期待するという意味と、妊娠するという意味があるので、女性が妊娠した時にこれからどんなことが起こるかを知るための本らしい。ロング・セラーということだ。

その他には映画の紹介の動画の見出しに What to Expect from ~ という表現が使われていた。

要するに、これから起きることをあらかじめ説明するための表現のようだ。そうすると、第3節の表題は、型システム(を探索する際に)何が起きるかというような意味になるのだろう。

第2章の第1節では、型システムの本質がデータの抽象化であると説明し、第2節ではHaskellの型システムが、「強い」、「静的な」型づけで、型推定の機能があると説明した。第3節ではそのような型システム(の学習)でどのようなことが起きるのかを説明している。

第3節の冒頭で著者は、初学者にとってHaskellの型システムは煩わしい、面倒なものと感じるだろうということを認めている。実際にプログラムを動かす前にコンパイルの段階で様々な型エラーが発生するからだ。

しかし、これはプログラマーからランタイムのデバッグという負担を大幅に取り除いてくれる。ランタイムで発生する面倒なバグをコンパイルの段階から取り除いてくれるからだ。

しかし、このような一見煩雑な手続きに見えるにもかかわらず、型システムの利点はこの本を読み進むに連れてわかってくると初学者を激励する。その効果はほぼこの本の全章にわたって現れてくる。読者は個々の章を読むたびに型システムの新しい使い方を知ることになるが、そればかりでなく多くの章を読み進めるに連れて、その知識が総合されて個々の章の知識以上の利点を知ることになると主張する。

強く静的な型づけはエラーの少ないコードを作成し、型推定によってコンパクトなコードを書くことができる。それだけでなく、型システムについての知識が増すごとにその有用性は増し、最後には、他の静的型づけ言語の安全さと動的型づけ言語の使い勝手の良さの両者を兼ね備えたプログラム言語を手にすることになるだろうと説明する。

管理人の感想だが、著者はHaskellのプログラムの利点の源泉がその型システムにあると考えているようだ。また、その利点は一口で言い表せるものではなく、この本のプログラム例をひとつひとつ試していくことによって明らかになってくる類のものらしい。
by tnomura9 | 2012-02-17 07:24 | Haskell | Comments(0)
<< RWH の読み方(6) 第2章 いとくとら >>