“架构”和“元符号”在F#表达式中的含义是什么?

时间:2013-09-04 16:17:40

标签: f#

我正在使用F#上的textbook并介绍了阶乘函数

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

作者还指出,对包含fact的表达式的评估可能不会终止并添加到footnote

  

请注意,fact n 等文本不是 F#的一部分。它是一个架构,可以通过用适当的F#实体替换元符号n 来获得程序块。

这已经在我头上了!虽然我对fact的工作方式以及其他语言的递归感到满意,但我看不出作者在这里所做的区别。任何解释都欢迎。

1 个答案:

答案 0 :(得分:5)

我怀疑他们试图说的是n表示传递给函数的值(即“F#entity”)。 fact n并不是有效的F#代码。

n占位符的法律术语。”