初学函数式编程

高阶函数(Higher-Order Function):高阶函数就是把函数作为参数的函数。

柯里化(Currying):一个多参数的函数可以将其转化为多个单参数的函数的嵌套的过程(或者说是用匿名单参数函数实现多参数的方法的过程),如果只输入一个参数返回的仍然是一个函数,可以实现偏函数应用。

偏函数应用(Partial Application):一个函数有多个参数但是可以固定一个参数将其变成一个新的函数,可以理解成是函数柯里化的应用。

纯函数(Pure Function):相同参数一定有相同的输出,这样的函数就是纯的。比如strlen函数。

非纯函数(Impure Function):相同的参数不一定有相同的输出,这样的函数就是非纯函数。比如malloc函数。

懒惰求值(Laziness):函数的参数在函数调用前就进行参数求值,比如1/0就出现异常。

非懒惰求值(Strictness ):函数的参数在函数使用的时候才开始求值,比如1/0这个参数在函数使用前不会报错。

装箱(Boxed):基本数据类型对应的引用类型就是装箱类型,和基本类型的功能一样,但是是分配在堆上的。

拆箱(Unboxed):引用类型变量对应的基本类型变量就是拆箱类型,功能都一样。

学习参考:

https://ocaml.org/learn/tutorials/functional_programming.html

你可能感兴趣的:(初学函数式编程)