6

私はF#の教科書を読んでいて、階乗関数を導入した後

let rec fact = function | 0 -> 1 | n-> n * fact(n-1);;

著者はまた、次を含む式の評価が終了しない可能性があることを指摘し、脚注factを追加します。

fact nのようなテキストは F# の一部ではないことに注意してください。これは、メタ シンボル nを適切な F# エンティティに置き換えることで、プログラムの一部を取得できるスキーマです。

これは私の頭の上を通り過ぎました!の動作と、他の言語での再帰には満足してfactいますが、著者がここで作ろうとしている違いはわかりません。どんな説明でも大歓迎です。

4

1 に答える 1

5

彼らが言おうとしているのはn、関数に渡される値 (つまり、「F# エンティティ」) を表しているだけだと思います。fact n有効な F# コードである必要はありません。

nis a placeholder 」の正当な意味です。

于 2013-09-04T16:41:24.077 に答える