関数プログラミング実践入門 【読書記録 1章】

  • Haskellと他の言語では書き方がどのようにことなるか例を示しながら説明
  • Haskellは関数合成が容易.
  • 型検査があるから合成して良いかどうかも型によって検査されるため安全.
  • 一般に例外を正しく扱うのは難しい
  • 「文脈をプログラミングできる力」を利用することができる.それによりインスタンスに付随させた機能ではなく文脈に付随させた機能であるため,各値に依存したコードにせずに済むことがある.
  • 関数型言語を利用することで,関数は副作用を含まないあるいは制限された状況下でのみ利用可能であるため変数が書き換わってしまうことで挙動がおかしくなるような変更をしてしまうことは難しくなる.
  • 「簡単にかつ正しく並列化」することができる.しかし慣れたHaskellerでも「本当に速い並列化をすること」は難しい.評価の仕組みをよく知り,それらを意識して制御する方法を知らねばならない.
  • パターンマッチはコンストラクトの逆計算にあたり,ある型の値があったときに「値が実際にどのコンストラクタで作られたか」を判別し,作られたときに与えられた各要素を取り出すことのできる機能.
  • 型による助けが必要な箇所には,それに必要な強度で導入することができるし,また導入しないという選択肢も取れる
  • 「型システムが強力である」ことは「様々なものに対し,厳格に型付けせねばならない」ことを意味しているのではなく「その場所場所で,適切な型付けの度合いを選択する余地がある」ということ.