Seq.toMap не распознается при внутреннем вызове функции toMap2
open System
open Microsoft.FSharp.Collections
module Seq =
let toMap(seqinit:seq<'a*'T>) =
seqinit |> Map.ofSeq
let toMap2(seqinit:seq<'a*seq<'b*'T>>) =
seqinit |> Seq.map (fun (key1 ,seq1) -> (key1, seq1 |> Seq.toMap ))
|> Map.ofSeq
ОБНОВЛЕНИЕ
лучший функциональный код будет (с исходной решенной pbкак предложил Рамон Снир)
let inline (||>) (seqinit:seq<'a*'T>) f =
seqinit |> Seq.map (fun (key1 ,seq1) -> (key1, seq1 |> f ))
let toMap (seqinit:seq<'a*'T>) = seqinit |> Map.ofSeq
let toMap2 (seqinit:seq<'a*seq<'b*'T>>) = seqinit ||> toMap |> toMap
let toMap3 (seqinit:seq<'a*seq<'b*seq<'c*'T>>>) = seqinit ||> toMap2 |> toMap