在像Haskell这样的面向功能的语言中,可以重载函数定义的几个参数签名轴。C++支持参数的数量和类型。其他语言支持参数值,甚至保护子句(测试参数条件的代码)。factorial :: (Integral a) => a -> a factorial n = n * factorial (n - 1)
当参数为0时,阶乘的定义与参数为任何其他整数时的阶乘定义不同我还没有在C++中找到这种能力,起初我
在静态类型的函数式编程语言中,如Standard ML、F#、OCaml和Haskell,编写函数时通常会将参数彼此分开,并用空格将函数名与函数名分开: a + b这里的类型是"int -> (int -> int)",也就是一个函数,它接受一个整数,然后返回一个函数,然后再返回一个整数,最后返回一个整数。也可以定义一个类似的函数,将元组作为参数: a + b
在本例中,类型变为"(int