Haskellのラムダ式
\って、「$ \lambda」っぽいよね、的な
関数の引数を右辺で定義する
code:hs
inc :: Int -> Int -- 型注釈は同じ
inc x = x + 1 -- 通常の関数定義
inc = \x -> x + 1 -- ラムダ式
二引数の場合
code:hs
add :: Int -> Int -> Int
add x y = x + y
add = \x -> \y -> x + y
add = \x y -> x + y
ラムダ式は無名関数
それを変数に束縛している
うれしいこと
一度しか使わない関数に名前をつけずに済む
code:hs
main = do
print $ (\x -> x + 1) 1 -- 変数に束縛せずにラムダ式をそのまま実行