私が見る限り、Scheme を使用した関数型プログラミングで反復構造を教える通常の (そして私の意見では最良の) 順序は、最初に再帰を教えてから、map、reduce、およびすべての SRFI-1 手順などに取りかかることです。これはおそらく、再帰により、学生は反復に必要なすべてのものを持っているためです (また、必要に応じて SRFI-1 のすべてを書き直すことさえできます)。
SRFI-1 のいくつかの手順を使用し、それらが十分でない場合 (たとえば、関数を近似する場合) にのみ再帰を使用するという、逆のアプローチが試みられたことがあるかどうか疑問に思っていました。結果は良くないと思いますが、このアプローチの過去の経験について知りたいです。
もちろん、これは Scheme に固有のものではありません。この質問は、関数型言語にも当てはまります。
再帰の前に「アプリケーション プログラミング」(コンビネータの使用) を教えている本の 1 つに、Dave Touretsky のCOMMON LISP: A Gentle Introduction to Symbolic Computationがあります。