Хорошо, это довольно неприятно, я установил последнюю версию 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) -
Пожалуйста, кто-нибудь может объяснить это?