У меня есть «сжатый» поток значения, к которому присоединен число вхождение этого значения, например:Повторяющиеся последовательности в F #
let a = [(),1;(),4;(),3;]
Я хотел бы «распаковывать», что последовательность и излучать оригинальная последовательность. Я мог бы определить комбинатор повторения, чтобы уступить! с этой целью
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
Есть ли способ выразить это inline, в виде композиции?
let c = a |> Seq.XXX(fun e -> ...)
ах, я не знаю, что один! – nicolas
Итак, это один из лучших для кортежей, что является контекстом моего вопроса. Следовательно, это самый функциональный ответ. – nicolas
Теперь также ['List.replicate <'T>'] (https://msdn.microsoft.com/en-us/library/ee353665.aspx). –