List 随机整数列表上的F#选择排序
我对F#还不熟悉,试图了解一些基本知识,但进展缓慢。在下面的代码中,我试图生成一个随机整数列表,然后对其进行排序List 随机整数列表上的F#选择排序,list,sorting,random,f#,List,Sorting,Random,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 i
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
另一种是随机数列表。这是可行的,但我希望生成的数字小于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 arg = match arg with
| ... -> ...
| ... -> ...
当你呼叫它时,它的号码是未声明的。复制/粘贴过程中是否丢失了某些内容?还有,“让rec selectoinSort l=function |[…”也被破坏了。是的,genRandomNumbers是一个输入错误。你能告诉我如何修复selectionSort函数吗?它不会是尾部递归的:)。您在函数中所做的最后一件事是调用(:),而不是selectionSort。看看生成的IL。
let vname = function
| ... -> ...
| ... -> ...
let vname arg = match arg with
| ... -> ...
| ... -> ...