関数型プログラミングでは、末尾再帰になるように「ループ」コードを最適化することが重要な場合がよくあります。ただし、末尾再帰アルゴリズムは通常、基本ケースを設定する関数と実際のループを実装する関数の 2 つの関数に分割されます。(アカデミックではありますが) 良い例は、reverse 関数です。
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」はぎこちないだけです。
このようなヘルパー関数にどの命名規則を使用しますか?