用函数式语言编程就跟做代数题一样,是在做化简。思维方式也与人在做数学题时类似。
它的主要思想是将一些复杂的函数吧表达成一些简单函数的复合,如果学过可计算理论,或者递归论,或者拉姆达演算的话,理解起来就很容易了。
函数式语言关心的是一个问题是什么样的小问题的组合(what to do?),命令式语言关心的是怎样解决这个问题(how to do?)。
与
函数式语言(functional language)如ML 、Ocaml等
相对应的应该是
命令式语言(imperative language)如C.
用函数式语言编程就跟做代数题一样,是在做化简。思维方式也与人在做数学题时类似。
下面是ML语言计算阶乘的函数:
fun fac 0=0
| fac n = n * fac (n-1);
用命令式语言编程时,就需要用“机器的方式“思考。要考虑内存,同样的问题大家一定知道怎样用C语言写
int fac (int n)
{
?????????