8

John Hughes は、彼の記事「なぜ関数型プログラミングが重要なのか」で、「関数型プログラマーのレパートリーの中で、おそらく遅延評価はモジュール化のための最も強力なツールである」と主張しています。そうするために、彼は次のような例を提供します。

「infiniteLoop」と「terminationCondition」という 2 つの関数があるとします。次のことができます。

terminationCondition(infiniteLoop input)

ヒューズの言葉によると、遅延評価は「終了条件をループ本体から分離することを可能にします」。ここで遅延評価を使用する「terminationCondition」は、この条件をループの外で定義できることを意味するため、これは間違いなく当てはまります。terminationCondition がデータの要求を停止すると、infiniteLoop の実行が停止します。

しかし、高階関数は次のように同じことを達成できませんでしたか?

infiniteLoop(input, terminationCondition)

遅延評価は、高階関数では提供されないモジュール化をどのように提供しますか?

4

1 に答える 1