摘要: 首选是说下尾递归.如果一个函数呈现下列情况,且中间没有再次递归使用自己,可以认为是一个尾递归.R function(a,b){ ...... return function(c,d);}尾递归可以很轻松的改为一个循环的,如果编译器(解释器)支持的话,可以直接优化的.一般的FP都支持尾递归的.如果像树,Fibonacc这种结构来使用递归的,好像很难转化为尾递归的,这时候使用到的另一种方法是Continuation ,Continuation 可以是看做是一个尾递归的,不过得把 b,d 看做函数它们有着相同的函数签名.看个例子把let rec fib n = match n with ... 阅读全文
posted @ 2012-07-25 17:58 zhuangzhuang1988 阅读(1153) 评论(1) 推荐(1) 编辑