Haskell - про лямбди

лямбда - це анонімна функція

наступні конструкції рівноцінні

b1 = \x -> x + 1

b2 :: Int -> Int
b2 x = x + 1


ghci> b1 5
6
ghci> b2 5
6

наступні конструкції рівноцінні

c1 = \x y -> x * y

c2 :: Int -> Int -> Int
c2 x y = x * y


ghci> c1 2 3
6
ghci> c2 2 3
6

наступні конструкції рівноцінні

z1 = \x -> print x >> pure (x * x)

z2 :: Int -> IO Int
z2 x = do
  print x
  return (x * x)


ghci> z1 2
2
4

ghci> z2 2
2
4