我是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,而不是我現在得到的巨大數值。
感謝您的耐心和幫助!
genRandomNumbers縮寫形式是不宣而當你調用它。你的複製/粘貼中有東西丟失了嗎?此外,「let rec selectoinSort l = function | [] ...」也被破壞。 – 2011-05-24 06:51:52
耶genRandomNumbers是一個錯字。你能告訴我如何修復selectionSort函數嗎? – Danny 2011-05-24 07:00:30