F#四重双功能

时间:2013-12-01 23:52:48

标签: f#

根据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; }

1 个答案:

答案 0 :(得分:5)

我认为这只是一个混乱的缩进。该函数应该如下所示:

let quadruple x =    
    let double x = x * 2
    double(double(x))

这应该更有意义 - quadruple函数定义函数double,然后在输入x(将其乘以2)上调用它,然后应用{{1}在结果上再次将其乘以2,结果为double

使用示例中的缩进,代码将无法编译,因为它在语法上无效(函数体不能以(x * 2) * 2行结束 - 它需要以表示要返回的结果的表达式结束)。