创建array2D不起作用

时间:2014-06-05 18:08:12

标签: arrays f# msdn f#-interactive

使用MSDN示例:

let my2DArray = array2D [ [ 1; 0]; [0; 1] ]

尝试在F#Interactive中运行它,但出现以下错误:

  

错误FS0003:此值不是函数且无法应用

我知道我可以使用Array2D.init,但想知道为什么array2D无效。

1 个答案:

答案 0 :(得分:4)

您在问题中发布的单行样本对我来说很合适,因此错误可能是由下一行(或上一行)上的其他代码引起的。

例如,我收到错误"这个值不是一个函数,当我写这个时不能应用"

let my2DArray = 
  array2D [ [ 1; 0]; [0; 1] ]
    printfn "hi"

在这种情况下,错误是由不正确的缩进引起的。编译器认为您将第二行(array2D [ .. ])上的代码视为函数并将第三行上的代码用作参数(因为它进一步缩进)。修复缩进(删除printfn之前的空格)可以解决问题。

很难说你的情况有什么问题,但我怀疑是非常相似的。