Closure 2020/9

クロージャ
  • ラムダ関数外で定義された変数をラムダ関数内で使用するように定義した関数。

ラムダ関数外で定義された変数をラムダ関数内で使用する。
closure1 x = (\y -> x + y)
GHCi> closure1 1 2
3

変数に関数を渡すことができる。
double2 x = x * 2
half2 x = x / 2

closure2 f = (\x -> f x)
GHCi> closure2 double2 8
16
GHCi> closure2 half2 8
4