Ho aggiunto alcuni metodi utili ad alcuni dei moduli F # come List.Estensione del modulo elenco F #
type Microsoft.FSharp.Collections.FSharpList<'a> with //'
static member iterWhile (f:'a -> bool) (ls:'a list) =
let rec iterLoop f ls =
match ls with
| head :: tail -> if f head then iterLoop f tail
| _ ->()
iterLoop f ls
e mi chiedo se è possibile aggiungere la mutazione? So che List è immutabile, quindi che ne dici di aggiungere un metodo mutabile a Ref of type List. Qualcosa come questo.
type Ref<'a when 'a :> Microsoft.FSharp.Collections.FSharpList<'a> > with //'
member this.AppendMutate element =
this := element :: !this
o c'è qualche modo per vincolare un generico solo accettare un mutevole?