gpt4 book ai didi

f# - 为什么我的代码不能编译?

转载 作者:行者123 更新时间:2023-12-03 23:25:22 25 4
gpt4 key购买 nike

let sub (m:double[],n:double[]) : double[]=
[| for i = 0 to Array.length m -1 do m.[i]-n.[i] |]

错误 1 ​​此值不是函数,无法应用 E:\MyDocuments\Visual Studio 2010\Projects\curve交叉点\newton\Module1.fs 27 21 newton

但是,这没关系:
let a = [| "a"; "b"; "c"; "d"; "e"; "f" |]

for i = 0 to Array.length a - 1 do
System.Console.WriteLine(a.[i])

最佳答案

减号周围的空格很重要:

f -1   // means f(-1)

调用函数 f参数为 -1 (一元减)。然而
n - 1


n-1

是减法。

编译器错误反射(reflect)了
Array.length m -1

解析为
(Array.length m)(-1)

好像它期望第一个表达式返回一个函数,然后该函数将应用于值 -1 .由于长度实际上返回一个 int ,您会收到错误消息,指出整数不是函数且不能应用于参数 -1 .

关于f# - 为什么我的代码不能编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3562542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com