私はクロージャーの広い概念を理解しています (関数は、定義された時点で環境のスナップショットと共に保存されます)。ファースト クラスの市民としての関数とは、言語の他のデータ型と同様に、関数を渡したり返したりできることを意味します。
興味深いことに、Python、Javascript、Scheme など、私が扱ったすべての言語は、ファースト クラスの市民としての機能を備えているため、常にクロージャも備えているようです。
実際、関数との間でクロージャーを渡したり返したりすることは、関数を言語の第一級市民として実装する1つの方法ですが、それらを書くことができることが、関数が第一級市民であることの直接的かつ必然的な結果であるかどうかはわかりません。
より具体的に言えば:
ファーストクラスの関数を持っているが、クロージャーを書くことができない言語の実際の例を提供できますか?