Lambdas

发布时间 2023-04-11 08:37:57作者: 牧羊龟
  • Lambdas是匿名函数,通常在只需要某个函数一次时使用
  • 我们通常创建lambdas函数的唯一目的是将它们传递给高阶函数
  • 要创建一个lambda,写入\,然后用写入用空格分离的参数,然后写入->,然后写函数体
  • 我们通常用括号把它们括起来
    如下
zipWith (\ a b -> (a * 30 + 3) / b) [5,4,3,2,1] [1,2,3,4,5]

lambda可以使用模式,如下

map (\ (a, b) -> a + b) [(1,2), (3,5), (6,3), (2,6)]

因为函数默认是curred,这两个定义是相同的,如下

addThree :: Num a => a -> a -> a -> a
addThree x y z = x + y + z

addThree :: Num a => a -> a -> a -> a
addThree = \ x -> \ y -> \ z -> x + y + z