Skip to content
Go back

函数是一等公民

Updated:

函数是一等公民

一等函数的概念是函数与程序中使用的任何其他数据没有什么不同。函数可以用作参数并作为其他函数的值返回。

ifEvenInc n = if even n
then n + 1
else n

ifEvenDouble n = if even n
then n * 2
else n

ifEvenSquare n = if even n
then n^2
else n

这些函数很容易编写,但这三个函数几乎是相同的。唯一的区别在于递增、加倍和平方的行为。其实这里是可以抽象化的通用计算模式。

执行此操作的关键是能够将函数作为参数传递以执行所需的行为。

ifEven myFunction x = if even x
then myFunction x
else x

inc n = n + 1
double n = n*2
square n = n^2

ifEvenInc n = ifEven inc n
ifEvenDouble n = ifEven double n
ifEvenSquare n = ifEven square n

Suggest Changes

Previous Post
类型
Next Post
二进制数据