这是F#中阶乘函数的简单实现
let rec fact =function
| 0->1
| n-> n * fact(n-1);;
fact 5
Run Code Online (Sandbox Code Playgroud)
1-这个rec词的作用是什么?
2-事实是功能,但从未提及它可以有一个参数.因此在技术上它应该面对错误,因为在signature(let rec fact)中没有为它定义参数.那它是如何运作的?
1)rec用于将函数标记为递归.没有它,你将无法从函数实现中调用它.在MSDN上阅读更多内容:递归函数:rec关键字(F#)
2)let rec fact = function是一个快捷方式:
let rec fact argument =
match argument with
| 0 -> 1
| n -> n * fact (n-1)
Run Code Online (Sandbox Code Playgroud)
如您所见,有一个参数与提供的条件进行模式匹配.
它被称为模式匹配函数,在MSDN上描述:匹配表达式(F#)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |