Ho una lista e desidero restituire ciascun elemento singolarmente. Fondamentalmente come scoppiare da una pila. Ad esempio:Estrarre ricorsivamente l'elenco negli elementi
let rnd = new System.Random()
let rnds = List.init 10 (fun _ -> rnd.Next(100))
List.iter (fun x -> printfn "%A"x) rnds
Tuttavia, invece di iterazione, avrei effettivamente desidero restituire ogni intero uno dopo l'altro finché l'elenco è vuoto. Quindi, in pratica qualcosa sulla falsariga di:
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)))))
purtroppo il mio tentativo di una soluzione ricorsiva o meglio ancora qualcosa usando volte o scansione non hanno avuto successo. Ad esempio questo restituisce solo la lista (come la mappa).
let pop3 (rnds:int list) =
let rec pop3' rnds acc =
match rnds with
| head :: tail -> List.tail(tail)
| [] -> acc
pop3' [] rnds
Quindi mi sento di usarlo come: 'lasciare xx = unpacker (rnds) '' xx.get() 'o' [per i in 1..5 -> xx.get()] 'Ho aggiunto' override this.ToString() = sprintf "% A" l' per creare è un po 'più user friendly. – s952163