1

関数型プログラミングでは、Ocaml特に関数が作成されるときに、すべてへの参照non-local variableが作成されるため、非ローカル変数がスコープ外にある場合でも使用できます。これはクロージャと呼ばれます。
また、cプログラミング言語には、変数のメモリ位置を参照するポインタの概念があります。
クロージャとポインタの違いはスコープにあります。それで全部ですか?

4

1 に答える 1

3

クロージャを実装するには、のコンパイラ/インタプリタは、OCaml参照されるすべての変数のコピーと関数へのポインタを含む構造体を割り当てる必要があります。ではC、関数ポインタは単なるポインタであるため、割り当てはありません。

于 2012-09-27T08:22:44.030 に答える