2012年11月24日

几个简单函数的实现,就当做是ocaml练习用的

摘要: 第一个函数式求和,从i到j求和,这里假定i是下限,j是上限let rec sum i j = if i > j then 0 else i + (sum (i+1) j) ;;这个递归实现很简单,但是由于不是尾递归的,所以编译器不能转成迭代来计算,当递归层数太高的情况下stack会溢出,稍微修改一下,可以改成递归版本let sum i j = let rec sum_int i j s = if i > j then s else sum_int (i+1) j (s+i) in sum_int i j 0 ;;这里定义了一个sum_int的内部函数,他是一个尾递归的函数,编译器会 阅读全文

posted @ 2012-11-24 19:58 mathlover 阅读(540) 评论(0) 推荐(0) 编辑

导航