【问题标题】:Creating array2D doesn't work [closed]创建array2D不起作用[关闭]
【发布时间】:2014-06-05 18:08:12
【问题描述】:

使用MSDN 示例:

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

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

错误FS0003:该值不是函数,不能应用

我知道我可以使用Array2D.init,但想知道为什么array2D 不起作用。

【问题讨论】:

  • 您确定输入正确吗?这就是我得到的:> array2D [[1;0];[0;1]];; val it : int [,] = [[1; 0] [0; 1]]
  • 是的,只需复制和粘贴
  • 刚刚重启VS,现在可以正常使用了

标签: arrays f# msdn f#-interactive


【解决方案1】:

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

例如,我在写这个时得到错误“这个值不是函数,不能应用”:

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

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

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

【讨论】:

  • 是的,现在可以了,可能是VS的问题
猜你喜欢
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多