好的,这很令人沮丧,我已经安装了最新版本的 SharpDevelop,还安装了 F# 编译器(根据 SharpDevelops 网站的链接)
我在 Vista 中运行。
到目前为止,一切正常。
但是由于某种原因,当我尝试使用 List.fold_left 时它只是拒绝编译,但是 List.fold 似乎可以工作,
这是错误:
未定义值、构造函数、命名空间或类型“fold_left” (FS0039)
这是代码:
#light
open System
let nums = [1..10]
let ans = List.fold_left (+) 0 nums
Console.WriteLine("answer: {0}", ans)
// Just to make it pause
let pause = Console.ReadLine()
进一步的问题是我正在尝试使用折叠来平方列表中的每个项目,例如:
1^2 + 2^2 + 3^2 ...
我假设 Fold 需要一个函数和一个列表,所以我尝试如下:
let sq x = x*x
let ans = List.fold (sq) 0 nums
但这在第二行都给了我以下错误:
“int -> int”类型与“int”类型不匹配 (FS0001) - “a -> int”类型与“int”类型不匹配 (FS0001) -
请问有人可以解释一下吗?