我有一個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. Racy尾遞歸函數
- 5. Scala:尾遞歸函數
- 6. 可以函數尾遞歸
- 7. 尾遞歸函數與否
- 8. 如何在R中保持遞歸函數計數?
- 9. 如何從遞歸遞歸函數
- 10. 如何使這個函數尾遞歸?
- 11. 我該如何註釋這個尾部遞歸Scala函數
- 12. 單遞函數中的尾遞歸
- 13. 我的rec函數尾遞歸嗎?
- 14. 在遞歸方法中保持計數?
- 15. 沒有全局變量或函數參數的遞歸調用
- 16. 遞歸計數
- 17. 遞歸計數
- 18. 沒有整數參數的遞歸
- 19. 遞歸函數
- 20. 遞歸函數
- 21. 遞歸函數
- 22. 遞歸函數
- 23. 遞歸函數
- 24. 遞歸函數
- 25. 遞歸函數
- 26. 遞歸函數
- 27. 遞歸函數
- 28. 遞歸函數
- 29. 遞歸函數
- 30. 遞歸函數
爲什麼尾遞歸不是一種選擇? – Yawar
您需要傳遞函數所需的信息以完成其工作。爲什麼你不能創建具有額外參數的輔助函數?這樣的事情通常在ML中完成。輔助函數的定義可以完全侷限於函數(使用'let fun ... in ... end'),所以在這個意義上,整體函數不會被任何額外的參數所混淆。 –
@Yawar,老師下訂單。 –