如何解决F#选择对随机整数列表排序
| 我是F#的新手,试图弄清楚一些基础知识,但步伐缓慢。在下面的代码中,我尝试生成随机整数列表,然后对其进行排序。let randomNumberList count =
let r = System.Random()
List.init count (fun _ -> r.Next(100))
let rec selectionSort l = function
| [] -> []
| l -> let min = List.min l in
let rest = List.filter (fun i -> i <> min) l in
let sortedList = selectionSort rest in
min :: sortedList
sortedList = selectionSort l
let unsortedList = randomNumberList 10
printfn \"%A\" unsortedList
printfn \"%A\" sortedList
所以有两件事...一是我得到的错误:
stdin(515,19): error FS0001: This expression was expected to have type
\'a list
but here has type
\'a list -> \'a list
另一个是随机数列表。它可以工作,但是我希望生成的数字小于100,而不是我现在得到的庞大值。
感谢您的耐心配合和帮助!
解决方法
如评论中所述,
let rec selectionSort
中不需要l
。固定代码:
let randomNumberList count =
let r = System.Random()
List.init count (fun _ -> r.Next(100))
let rec selectionSort = function
| [] -> []
| l -> let min = List.min l in
let rest = List.filter (fun i -> i <> min) l in
let sortedList = selectionSort rest in
min :: sortedList
let unsortedList = randomNumberList 10
let sortedList = selectionSort unsortedList
printfn \"%A\" unsortedList
printfn \"%A\" sortedList
System.Console.ReadLine() |> ignore
说明:
let vname = function
| ... -> ...
| ... -> ...
是...的缩写
let vname arg = match arg with
| ... -> ...
| ... -> ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。