I einen ‚komprimierten‘ Strom von Wert zu dem die Anzahl des Auftretens dieses Wertes angebracht, zum Beispiel:Repeating-Sequenzen in F #
let a = [(),1;(),4;(),3;]
Ich mag ‚dekomprimieren‘, die Sequenz und emittieren die ursprüngliche Sequenz. Ich könnte einen Wiederholungskombinator definieren, um zu ergeben! zu diesem Zweck
let rec repeat avalue n = seq { if n > 0 then
yield avalue; yield! repeat avalue (n-1) }
let b = seq { for v,n in a do
yield! repeat v n } |> Seq.toList
Gibt es eine Möglichkeit, das inline auszudrücken, in Form einer Zusammensetzung?
let c = a |> Seq.XXX(fun e -> ...)
ah, ich weiß nicht, dass man! – nicolas
Also dieses ist das beste für Tupel, das ist der Kontext meiner Frage. Daher ist dies die funktionalste Antwort. – nicolas
Es gibt jetzt auch ['List.replicate <'T>'] (https://msdn.microsoft.com/en-us/library/ee353665.aspx). –