質問がうまくできず、余計な推測の手間をかけてしまったようで申し訳なかったです。

再帰を陽に使っているという言い方が完全に間違っていました、すいません。
再帰を手続きっぽく使っているというべきでした。

たとえば、リストに対する分割統治アルゴリズムも再帰的ですが、
部分を解く計算が全体を解く計算と同じなので、
<全体の解> = <部分1の解> `合成する` <部分2の解> とか、
<全体の解> = <部分のどれかの解>
などの構造でプログラムが書けるので非常に宣言的に見え、気持ちいいです。
ソースから何を解いているのかを読み取るのも比較的に楽ですし。

それに比べて >>15 の再帰の使い方は、いかにも
C 言語で for ループを使っているところをHaskell に直訳しました的な感じで、
とても手続きっぽく見えて気持ち悪いです。

そういう再帰の使い方を裏に隠すのが foldl などの標準ライブラリ関数なので、
>>32 の解釈のとおりなのですが、そうすると今度は
上手くやらないと書かれたソースが技巧的になる傾向があり、
宣言的だけど意図が分かりにくいということになりかねません。

宣言的で読み解きやすいプログラムにはできないものか、という質問でした。


>>33
はい、参考にさせていただきます。