別の関数を引数として取るような関数です。関数の根となるような最初の自然数を探します。無限ループすることに注意してください。高階関数はコードの再利用を促進します。ここではその単純な例を示そうと思います。間における類似点は明白です。この一般化が実際には動かないことは少し意外かもしれません。使っているため明らかに無環境ではないためです。一般的ですが、代償を伴います。このクロージャ関数は関数が返った後はもはや使いません。回収するまで解放されません。たやすくメモリリークを引き起こしてしいまいます。この興味深いプログラミングの機能は別の章で紹介します。多くのATSの機能が導入されれば、高階関数はより効果的にコードの再利用ができるようになるでしょう。