我有一个ML编程分配,在几个函数中,保持计数是有用的。例如,在一个函数中,我需要返回一个元素出现的索引列表。我不知道如何在递归中跟踪这些事情,因为函数调用会杀死我的计数。在现实世界中,我会使用计数变量,但这不是学校的选择。有什么提示吗?
答案 0 :(得分:2)
如果可以使用辅助函数,基本上可以使用尾递归。你的老师不会给你一个递归问题,迫使你使用除纯递归之外的技术
具有这些功能的模式通常是:
fun outer list =
let
fun inner param inner_list =
(* use tail recursion here *)
in
inner initial_param list
end