Skip to content
Go back

闭包

Updated:

闭包

add4 a b c d = a + b + c + d

GHCi> mystery = add4 3

运行此代码会发现它不会导致错误。 Haskell 创建了一个全新的函数

GHCi> mystery 2 3 4 12 GHCi> mystery 5 6 7 21

神秘函数将 3 添加到您传递给它的剩余三个参数中。当你在 Haskell 中调用任何参数数量少于所需参数的函数时,你会得到一个正在等待剩余参数的新函数。这种语言特性称为partly application。

函数 binaryPartialApplication,它接受一个二元函数和一个参数,并返回一个等待缺少参数的新函数:


binaryPartialApplication f x = \y -> f x y

add :: Int -> Int -> Int
add x y = x + y

addFive :: Int -> Int
addFive = binaryPartialApplication add 5

Suggest Changes

Previous Post
参数化类型