在函數式編程中,優化任何「循環」代碼以進行尾遞歸通常很重要。尾遞歸算法通常分爲兩個函數,一個是設置基本情況,另一個是實現實際循環。一個好的(儘管是學術的)例子會是相反的功能。輔助函數的命名約定是什麼?
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