teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2017/02/03 07:35

投稿

tamoto
tamoto

スコア4346

answer CHANGED
@@ -5,9 +5,10 @@
5
5
  * 変数への再代入不可(変数の宣言を定義と見なす)
6
6
  * データ構造の変更不可(イミュータブルの概念、不変のメリット)
7
7
  * 代数的データ型(型の定義でデータを表現する手法)
8
- * 関数合成・モナド(上記のキツイ縛りの中で柔軟にプログラムを書ける仕組み)
8
+ * 再帰・関数合成・モナド(上記のキツイ縛りの中で柔軟にプログラムを書ける仕組み)
9
9
 
10
10
  のように、関数指向な言語の中でも特に縛りがきつく作られているため、「Haskellで動くコードが書けた==関数指向でコードを書けている」ということになるため、概念を理解するには最も近道だと考えられるからです。
11
11
  これは真面目にやるでも良いですが、適当にチュートリアルや練習問題をつまみ食いしてみるだけでも得られるものは非常に多いです。実際多かったです。
12
+ あと、コンパイラ一式をダウンロードしてインタプリタを起動するだけでもう書けるので、最初の導入は非常に手軽だというのも利点です。
12
13
 
13
14
  ちなみに、C#でガッツリ関数指向なプログラムを組もうと思った場合、わりと普通に組めます。コンパイラとJITコンパイラが優秀で、そこそこ大きな関数チックなコードを書いてもしっかり動いてくれます。