我正在使用F#上的textbook并介绍了阶乘函数
let rec fact = function | 0 -> 1 | n-> n * fact(n-1);;
作者还指出,对包含fact
的表达式的评估可能不会终止并添加到footnote
请注意,
fact
n 等文本不是 F#的一部分。它是一个架构,可以通过用适当的F#实体替换元符号n 来获得程序块。
这已经在我头上了!虽然我对fact
的工作方式以及其他语言的递归感到满意,但我看不出作者在这里所做的区别。任何解释都欢迎。
答案 0 :(得分:5)
我怀疑他们试图说的是n
表示传递给函数的值(即“F#entity”)。 fact n
并不是有效的F#代码。
“n
是占位符的法律术语。”