【发布时间】:2010-07-01 01:19:13
【问题描述】:
好吧,这很令人沮丧,我已经安装了最新版本的 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) -
请问有人能解释一下吗?
【问题讨论】: