Хорошо это довольно неприятно, я, ве установил последнюю версию SharpDevelop, а также установлен F # компилятор (по ссылке с сайта SharpDevelops)F # под SharpDevelop
Я работает в Vista.
до сих пор все работает нормально.
Но по какой-то причине он просто отказывается компилировать, когда я пытаюсь использовать List.fold_left, однако List.fold, кажется, работает,
здесь ошибка:
The value, constructor, namespace or type 'fold_left' is not defined (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
, но это дает мне следующую ошибку как на второй строке:
The type 'int -> int' does not match the type 'int' (FS0001) - The type ''a -> int' does not match the type 'int' (FS0001) -
Пожалуйста, может кто-нибудь объяснить это?
Так что это поднимает то, о чем я думал на днях. Есть ли правильная складка в стандартной библиотеке? –
@Nels - Да, это называется 'List.foldBack'. – kvb
И вы можете найти его, посмотрев документы, которые я связал в своем ответе. Документы библиотеки - достойная ссылка - смотрите! – Brian