#author("2019-09-17T12:41:29+00:00","default:sagasite","sagasite") [[Haskell]] > 本 > [[入門Haskellプログラミング]] > LESSON 3 #contents *入門Haskellプログラミング [#idb18288] #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 3 [#z4050761] - Haskellでのラムダ関数の記述 - ラムダ式を使った特別な関数の定義 - レキシカルスコープ - ラムダ関数によるスコープの作成 *3.1 ラムダ関数 [#we8ebc09] 書式 \x -> x -最初にバックスラッシュ「\」を書く。(Windowsパソコンの場合、バックスラッシュ記号が円マーク「¥」で表示される場合もある) -続いて、引数を書く。上記の書式では、左側の「x」の部分のこと。 -続いて、「->」という記号を書く。 -続いて、関数の本体を書く。上記の書式では、右側の「x」の部分のこと。 本書、p.26の図3-1には間違いがある。 「関数の引数(複数の場合もある)」から伸びている線は、右側のxに向かっているが、正しくは左側のxに向かっていなければならない。 //---------------------------------------- // 2019年9月17日21:33:19 //---------------------------------------- ラムダ関数の書き方の例 Prelude> (\x -> x * 2) 4 8 型を確認してみます。 Prelude> :t (\x -> x) (\x -> x) :: p -> p Prelude> :t (\x -> x * 2) (\x -> x * 2) :: Num a => a -> a * 3.2 where句 [#nd40ab14] (参考) - Haskell-補助関数 CapmNetwork http://capm-network.com/?tag=Haskell-%E8%A3%9C%E5%8A%A9%E9%96%A2%E6%95%B0 >補助関数とは、関数定義の内部でのみ使用する部分的な関数のことです。 補助関数を作成することで、複雑で分かりにくいプログラムの構造を簡潔にして可読性を向上することができます。 また、処理毎に分割することはプログラムを再利用しやすく、保守性のあるものにします。 なお、補助関数を内包する親となる関数は「最上位関数」と呼ばれます。 Haskellにおける補助関数の定義方法は「let」と「where」の2通りありますが、whereを使うほうが一般的といえます。 どちらを使用しても問題ありませんが、混在していると可読性が悪くなるため、統一して利用することが推奨されています。