mam 'sprężonego strumienia powoduje wartości, do którego jest dołączony liczby występowania tej wartości, na przykład:powtarzalne sekwencje F #
let a = [(),1;(),4;(),3;]
POLUBIŁEM „uncompress” tej sekwencji i emitują oryginalna sekwencja. Mogę zdefiniować kombinator powtórzeń, aby uzyskać plon! w tym celu:
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
Czy istnieje sposób wyrażenia tego w formie, w formie kompozycji?
let c = a |> Seq.XXX(fun e -> ...)
ah, nie wiedziałem, że jeden! – nicolas
Więc ten jest najlepszy dla krotek, co jest kontekstem mojego pytania. Dlatego jest to najbardziej funkcjonalna odpowiedź. – nicolas
Istnieje również ['List.replicate <'T>'] (https://msdn.microsoft.com/en-us/library/ee353665.aspx). –