使用MSDN示例:
let my2DArray = array2D [ [ 1; 0]; [0; 1] ]
尝试在F#Interactive中运行它,但出现以下错误:
错误FS0003:此值不是函数且无法应用
我知道我可以使用Array2D.init
,但想知道为什么array2D
无效。
答案 0 :(得分:4)
您在问题中发布的单行样本对我来说很合适,因此错误可能是由下一行(或上一行)上的其他代码引起的。
例如,我收到错误"这个值不是一个函数,当我写这个时不能应用" :
let my2DArray =
array2D [ [ 1; 0]; [0; 1] ]
printfn "hi"
在这种情况下,错误是由不正确的缩进引起的。编译器认为您将第二行(array2D [ .. ]
)上的代码视为函数并将第三行上的代码用作参数(因为它进一步缩进)。修复缩进(删除printfn
之前的空格)可以解决问题。
很难说你的情况有什么问题,但我怀疑是非常相似的。