プログラミング Haskell 第1章 導入

プログラミングHaskell

プログラミングHaskell

今日から「プログラミング Haskell」を読むことにします。Haskell は青木峰郎さんの「ふつうのHaskellプログラミング」を一読して小さなサンプルプログラムを書いたことがある程度です。本書がどんな内容かもわからないので最初はゆっくり読んでいきます。

  • 訳者前書きより「(Haskell の特徴から)一つだけしか説明してはいけないとしたら、私は躊躇なく型システムを選ぶ」
    • 型でプログラムする感覚を身に付けたいです
  • 関数 - 1つ以上の引数を取り 1つの結果を返す変換器
  • 関数名と引数名を式と等号で結ぶ
double x = x + x
  • 関数の適用(簡約)とは、関数の本体内にある引数の名前を実際の引数に置き換えること
double 3
= { double を適用 }
3 + 3
= { + を適用 }
6
    • と、いうことは + も「関数」なんですね
  • ネストした関数では、どっちから(外側、内側)簡約するかという手順の違いがある
  • 関数型プログラミングパラダイムについて
    • 逆に「命令型プログラミング」とは「計算の基本は蓄えられている値を変えること」というパラダイム
    • 関数型は「計算は関数を引数に適用すること」……まだピンとこない
  • Haskell の特徴から個人的に興味をひかれる部分
    • 強力な型システム
    • モナド
    • 遅延評価
    • プログラムの論証
  • sum, qsort などのサンプルプログラム