许多函数式编程语言都支持柯里化参数。为了支持柯里化函数,函数的参数本质上是一个元组,其中最后一个参数可以省略,从而使新函数需要更小的元组。
我正在考虑设计一种始终使用记录(又名参数)作为函数参数的语言。
因此,我相信语言中的简单数学函数将是:
add { left : num, right : num } = ...
minus { left : num, right : num } = ..
您可以将任何记录传递给这些函数,只要它们具有这两个命名参数(它们可以有更多“左”和“右”)。
如果它们只有一个命名参数,它会创建一个新函数:
minus5 :: { left : num } -> num
minus5 = minus { right : 5 }
我在上面借用了一些haskell 的符号。
有没有人见过这样的语言?