これはかなり苛立たしいことです。最新バージョンのSharpDevelopをインストールし、F#コンパイラもインストールしました(SharpDevelops Webサイトからのリンクによる)
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
しかし、これにより、2行目の両方で次のエラーが発生します。
タイプ'int->int'がタイプ'int'(FS0001)と一致しません-タイプ'' a-> int'がタイプ'int'(FS0001)と一致しません-
誰かがこれを説明できますか?