#author("2019-09-15T15:52:21+00:00","default:sagasite","sagasite")
[[Haskell]] > 本 > [[入門Haskellプログラミング]] > LESSON 2
#contents
*入門Haskellプログラミング [#f45373fe]
#html{{
<table border="0" cellpadding="5"><tr><td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4798158666/vertex9-22/" target="_blank"><img src="https://images-fe.ssl-images-amazon.com/images/I/51o1oUqjsvL._SL160_.jpg" border="0"></a></td>
<td> </td>
<td valign="top"><a href="https://www.amazon.co.jp/exec/obidos/ASIN/4798158666/vertex9-22/" target="_blank">入門Haskellプログラミング</a><br>Will Kurt<br>翔泳社<br>2019-07-31<br>¥ 4,104</td></tr></table>
}}
**LESSON 2 [#c199a0b8]
- 関数型プログラミングの概要
- Haskellでの単純な関数の定義
- Haskellでの変数の宣言
- 関数型プログラミングの利点
* Haskellの関数の3つのルール [#q1526188]
+ すべての関数が引数を受け取らなければならない。
+ すべての関数が値を返さなければならない。
+ 関数が同じ引数で呼び出されたときは常に同じ値を返さなければならない。([[参照透過性]])
* ラムダ計算 [#q79ba050]
1930年代、数学者アロンゾ・チャーチが関数と変数(x、y)のみを使用する論理システムの作成を試みました。
この論理システムは[[ラムダ計算]]と呼ばれます。
ラムダ計算では、すべてのものが関数として表されます。
* 副作用 [#c684fe69]
プログラミング環境の値を変更すれば、プログラムの状態を変化させることになります。
状態が変化すればコードに副作用が生じ、それらの副作用によってコードの論証が難しくなります。
結果として、コードが安全ではなくなる可能性があります。