我们都学到了数学函数,当我们研究代数:Y = F(X),其中f(x)= AX2+ ...。在数学的抽象世界,函数都是纯,重复性好,没有副作用。
在命令式编程语言,如C,功能(在返回值子程序的意义上)往往是什么,但纯粹的,因为它们依赖于内部和外部的状态,他们可以从一个调用改变他们的行为到另一个。虽然它往往是有用的,权宜之计有副作用的功能,它们可以是复杂的调试,并可能带来噩梦的维护者。
数学的一个分支叫演算(λ演算),它起源于邱奇的20世纪30年代的工作,underlies函数式编程的想法。在适用于函数式编程是λ演算的形式方面匿名函数, 也叫lambda函数;柯里,其将多变量函数成单变量函数的链,从而使它们以符合λ演算规则功能可以仅具有单个输入;和功能一流的值的,这意味着函数可以是输入和其他功能的输出。
在下面的文章中,我给你函数式编程的概述,并引导您在F#中,以帮助您作出这样的转变的例子。