我有一个ML编程任务,并在几个函数中,保持计数是有用的。例如,在一个函数中,我需要返回一个元素出现的索引列表。我不知道如何在递归中跟踪这些事情,因为曾经的函数调用会杀死我的数量。在现实世界中,我会考虑计数变量,但这在学校中不是一种选择。有小费吗?我应该如何保持递归函数计数。没有尾递归或额外参数
1
A
回答
2
如果你可以使用帮助函数,你基本上可以使用尾递归。你的老师不会给你,强迫你使用比纯递归其他技术
模式具有这些功能通常是递归的问题:
fun outer list =
let
fun inner param inner_list =
(* use tail recursion here *)
in
inner initial_param list
end
+0
我会用let,in,end来解决至少一个问题。 顺便说一句,我嫉妒你得拿杯子!谢谢你的帮助。 –
+0
干杯对不起,只是修正了语法。当我最初写这篇文章时,我可能正在考虑OCaml。 – Yawar
相关问题
- 1. 在递归函数中保持计数
- 2. 尾递归函数
- 3. 可以函数尾递归
- 4. 如何从递归递归函数
- 5. 我的rec函数尾递归吗?
- 6. 我该如何注释这个尾部递归Scala函数
- 7. 没有全局变量或函数参数的递归调用
- 8. 递归计数
- 9. 递归计数
- 10. 递归函数
- 11. 递归函数
- 12. 函数递归
- 13. 递归函数
- 14. 递归函数
- 15. 递归函数
- 16. 递归函数
- 17. 递归函数
- 18. 递归函数
- 19. 递归函数
- 20. 估计递归函数
- 21. 为什么我的递归函数没有第二个参数?
- 22. 在递归函数中保持计数C++
- 23. 递归函数没有任何返回
- 24. 将递归函数转换为尾递归
- 25. 科特林:尾递归的相互递归函数
- 26. 计划中的尾递归计数函数
- 27. 如何计算递归函数的值?
- 28. 如何计算递归函数?
- 29. 计划。尾递归?
- 30. 递归函数没有完全递归对象/子对象
为什么尾递归不是一种选择? – Yawar
您需要传递函数所需的信息以完成其工作。为什么你不能创建具有额外参数的辅助函数?这样的事情通常在ML中完成。辅助函数的定义可以完全局限于函数(使用'let fun ... in ... end'),所以在这个意义上,整体函数不会被任何额外的参数所混淆。 –
@Yawar,老师下订单。 –