我试图写一个接受一个int n,返回运行从N到0评估期间堆栈溢出(循环递归?)。 OCaml的
这样下来列表的功能是什么,我有
let rec downFrom n =
let m = n+1 in
if m = 0 then
[]
else
(m-1) :: downFrom (m - 1);;
函数编译好的,但是当我测试它与任何int它给我的错误 堆栈溢出在评估(循环递归?)。
我知道这是本地变量,但我不知道另一种方式来声明它。谢谢!!!
谢谢!虽然我还没有学习尾递归,但我将最后一条语句改为(m-1):: downFrom(m-2),它的工作原理为 – otchkcom
作为提示,我会(为了更好的样式)简单地消除m的定义,随处取代n + 1,否则看起来很尴尬。 –
我修正了几个拼写错误,让你的版本''downFrom'编译。但是,它仍然会返回一个递增的清单,而OP则要求递减清单。 – jrouquie