我在http://www.tryfsharp.org上的交互式窗口中收到此错误.它在视觉工作室工作正常,我不知道如何解决它.任何帮助将不胜感激
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
Run Code Online (Sandbox Code Playgroud)
错误FS0039:该字段,构造或元件
'init'没有被定义
谢谢你的帮助
只有在第二次运行代码时才应该收到错误,并且它在TryF#控制台和Visual Studio本地中的行为相同.
问题是你声明了一个名为的值List:
let List = randomNumberGenerator 10
Run Code Online (Sandbox Code Playgroud)
它隐藏了标准模块List.声明值后,List.init尝试访问此List值的成员而不是访问标准List模块中的函数.
命名约定有一个很好的理由,例如对本地变量名使用小写:-)