根据TryF#.org网站,此功能将返回输入数字的四倍。
let quadruple x =
let double x = x * 2
double(double(x))
任何人都可以解释为什么我将其解释如下? Quadruple不会执行任何突变或多次调用。
function quadruple(x)
return function double(x)
return x * 2
或C#
int a(int x) { return b(x); }
int b(int x) { return x * 2; }
答案 0 :(得分:5)
我认为这只是一个混乱的缩进。该函数应该如下所示:
let quadruple x =
let double x = x * 2
double(double(x))
这应该更有意义 - quadruple
函数定义函数double
,然后在输入x
(将其乘以2)上调用它,然后应用{{1}在结果上再次将其乘以2,结果为double
。
使用示例中的缩进,代码将无法编译,因为它在语法上无效(函数体不能以(x * 2) * 2
行结束 - 它需要以表示要返回的结果的表达式结束)。