【发布时间】:2016-06-21 06:48:22
【问题描述】:
所以在我的教科书中有一个使用 f# 的递归函数的例子
let rec gcd = function
| (0,n) -> n
| (m,n) -> gcd(n % m,m);;
使用这个函数,我的教科书通过执行给出了示例:
gcd(36,116);;
由于 m = 36 而不是 0,那么它当然适用于第二个子句,如下所示:
gcd(116 % 36,36)
gcd(8,36)
gcd(36 % 8,8)
gcd(4,8)
gcd(8 % 4,4)
gcd(0,4)
and now hits the first clause stating this entire thing is = 4.
我没有得到的是这个 (%) 百分比符号/运算符或在此连接中调用的任何内容。例如,我不明白如何
116 % 36 = 8
我现在已经在脑海中转过很多次了,我想不通这怎么会变成 8?
我知道对于那些知道这一点的人来说这可能是一个愚蠢的问题,但我非常感谢你的帮助。
【问题讨论】:
标签: math recursion f# operators modulus