在函数式编程中,优化任何“循环”代码以进行尾递归通常很重要。尾递归算法通常分为两个函数,一个是设置基本情况,另一个是实现实际循环。一个好的(尽管是学术的)例子会是相反的功能。辅助函数的命名约定是什么?
reverse :: [a] -> [a]
reverse = reverse_helper []
reverse_helper :: [a] -> [a] -> [a]
reverse_helper result [] = result
reverse_helper result (x:xs) = reverse_helper (x:result) xs
“reverse_helper”不是一个很好的描述性名称。但是,“reverse_recursive_part”只是尴尬。
你会用什么命名约定来做这样的辅助函数?
那是什么语言? – 2009-01-06 20:59:52
对不起。我现在正在开发一个Haskell项目,这启发了这个问题。我可以给出一个Python/Java例子,尽管这样的辅助函数在命令式语言中没有那么有用。 – Cybis 2009-01-06 21:33:01