F # проблема интерактивного окна - PullRequest
0 голосов
/ 02 июня 2011

Я получаю эту ошибку в интерактивном окне на http://www.tryfsharp.org. Она отлично работает в Visual Studio, и я не уверен, как ее решить. Любая помощь будет признательна

let randomNumberGenerator count =
    let rnd = System.Random()
    List.init count (fun numList -> rnd.Next(0, 100))

let rec sortFunction = function
| [] -> []
| l -> let minNum = List.min l in
       let rest = List.filter (fun i -> i <> minNum) l in
       let sortedList = sortFunction rest in
       minNum :: sortedList

let List = randomNumberGenerator 10
let sortList = sortFunction List
printfn "Randomly Generated numbers in a NON-SORTED LIST\n"
printfn "%A" List
printfn "\nSORTED LIST \n"
printfn "%A \n" sortList

ошибка FS0039: поле, конструктор или элемент 'init' не определены

Оцените вашу помощь

1 Ответ

5 голосов
/ 02 июня 2011

Вы должны получить сообщение об ошибке только тогда, когда вы запускаете код во второй раз , и он должен вести себя так же в консоли TryF #, а также локально в Visual Studio.

Проблема в том, что вы объявляете значение с именем List:

let List = randomNumberGenerator 10

, который скрывает стандартный модуль List. После объявления значения List.init пытается получить доступ к члену этого значения List вместо доступа к функции в стандартном модуле List.

Есть веская причина для соглашений об именах, таких как использование строчных букв для имен локальных переменных: -)

...