私はListなどのいくつかのF#モジュールに便利なメソッドをいくつか追加しています。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
突然変異を追加することができますか?私はリストが不変なので、リストタイプのRefに変更可能なメソッドを追加する方法は知っています。このようなもの。
type Ref<'a when 'a :> Microsoft.FSharp.Collections.FSharpList<'a> > with //'
member this.AppendMutate element =
this := element :: !this
またはジェネリックを唯一の変更可能なものにするいくつかの方法がありますか?