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# 代码。

n是一个占位符”的法律术语。

于 2013-09-04T16:41:24.077 回答