我有一個列表,並希望單獨返回每個元素。基本上就像從一個堆棧彈出。例如:將列表遞歸解壓縮到元素中
let rnd = new System.Random()
let rnds = List.init 10 (fun _ -> rnd.Next(100))
List.iter (fun x -> printfn "%A"x) rnds
然而,而不是迭代,我真的喜歡對方後返回的每個整數一個,直到列表爲空。所以基本上東西沿着線:
List.head(rnds)
List.head(List.tail(rnds))
List.head(List.tail(List.tail(rnds)))
List.head(List.tail(List.tail(List.tail(List.tail(rnds)))))
不幸的是我嘗試在遞歸解決方案,甚至更好的使用倍或掃描什麼是不成功的。例如,這只是返回列表(與地圖相同)。
let pop3 (rnds:int list) =
let rec pop3' rnds acc =
match rnds with
| head :: tail -> List.tail(tail)
| [] -> acc
pop3' [] rnds
所以我會用它想:'讓XX = unpacker(rnds)''xx.get()'或'[for i in 1..5 - > xx.get()]'我添加了'覆蓋this.ToString()= sprintf「%A」l'它更友好一些。 – s952163