ublog

haskell -- про лямбди: частина 1

programming [47]haskell [4]

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


наступні конструкції рівноцінні
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



далі буде :)