我应该如何继续计算递归函数。没有尾递归或额外参数

时间:2017-02-24 20:20:10

标签: sml ml

我有一个ML编程分配,在几个函数中,保持计数是有用的。例如,在一个函数中,我需要返回一个元素出现的索引列表。我不知道如何在递归中跟踪这些事情,因为函数调用会杀死我的计数。在现实世界中,我会使用计数变量,但这不是学校的选择。有什么提示吗?

1 个答案:

答案 0 :(得分:2)

如果可以使用辅助函数,基本上可以使用尾递归。你的老师不会给你一个递归问题,迫使你使用除纯递归之外的技术

具有这些功能的模式通常是:

fun outer list =
  let
    fun inner param inner_list =
      (* use tail recursion here *)
  in
    inner initial_param list
  end