入門Haskellプログラミング UNIT 1 関数型プログラミングの基礎
入門Haskellプログラミングの読書メモ。
(p.13 ~)
UNIT 1 関数型プログラミングの基礎
プログラミングという行為を理解する方法には主に2つあります。
- 命令型:手続型プログラミング → ノイマン型アーキテクチャー
- 宣言型:関数型プログラミング → 問題を定義するだけで解決に導くプログラミングの手法
関数型プログラミング学習時の注意点
関数型プログラミングの土台となるのは、具体的な実装に捉われない抽象的かつ数学的な計算の概念です。
このことは、多くの場合は問題を定義するだけで解決に導くプログラミングの手法につながります。
関数型プログラミングでは、コンピュータではなく計算に焦点を合わせます。
それにより、多くの難題をはるかに簡単に解決できるようにする高度な抽象表現にプログラマがアクセスできるようになります。
その代償として考えられるのは、作業に取りかかるためのハードルが上がることです。
関数型プログラミングの概念は抽象的なものであることが多く、プログラミングのあり方を基本原理から築いていかなければなりません。
有益なプログラムを構築するには、多くの概念を習得する必要があります。
ユニット1で習得するのは、コンピュータのプログラミングから脱却するプログラミング手法であることを覚えておいてください。
C言語がノイマン型のプログラミングをほぼ完全に具現化したものであるとすれば、あなたが学ぶことができるもっとも純粋な関数型プログラミング言語はHaskellです。
言語としてのHaskellは、バッカスの夢の実現に向け、より親しみやすいプログラミングスタイルへの逸脱を決して許しません。
その点では、Haskellの習得は他の言語よりも難しいのですが、Haskellをマスターすれば必然的に関数型プログラミングを深く理解することになります。
ユニット1を読み終える頃には、関数型プログラミングの基礎がしっかり身についているはずです。
Haskellを学ぶ旅の準備ができていることはもちろん、他のすべての関数型プログラミング言語の基礎を理解することになるでしょう。
- 関数型プログラミングの学習で意識することは、「宣言型プログラミング」の作法を理解すること。
- Haskellは、副作用の分離/管理がしっかりしており、関数型プログラミングを学ぶための言語として有用。
どうすれば、Haskellの学習を簡単にできるか?(まだまだハードルが高い?)
学習の注意点を念頭に置きつつ、Haskellの学習を進めていきたいと思います。