let sub (m:double[],n:double[]) : double[]=
[| for i = 0 to Array.length m -1 do m.[i]-n.[i] |]
Run Code Online (Sandbox Code Playgroud)
错误1此值不是函数且无法应用E:\ MyDocuments\Visual Studio 2010\Projects\curve intersection \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])
Run Code Online (Sandbox Code Playgroud)
减号附近的空格:
f -1 // means f(-1)
Run Code Online (Sandbox Code Playgroud)
f使用-1(一元减号)参数调用该函数.而
n - 1
Run Code Online (Sandbox Code Playgroud)
和
n-1
Run Code Online (Sandbox Code Playgroud)
是减法.
编译器错误反映了这一点
Array.length m -1
Run Code Online (Sandbox Code Playgroud)
解析为
(Array.length m)(-1)
Run Code Online (Sandbox Code Playgroud)
好像它期望第一个表达式返回一个函数,然后将该函数应用于该值-1.由于length实际返回a int,因此您会收到错误消息,指出整数不是函数且不能应用于参数-1.