使用F#并尝试从字符串abcdefghijklmnop
中获取另一个字符串aeimbfjncgkodhlp
。
let input ="abcdefghijklmnop"
let convertList (input:string)=
input
|> Seq.mapi(fun i ei-> i % 4, ei)
|> Seq.groupBy (fst)
|> Seq.map(fun (g,s)-> s |> Seq.map snd)
let result = convertList input
result
在我的函数中,最终结果是seq<seq<char>>
,如何将seq<seq<char>>
转换为字符串?
答案 0 :(得分:4)
在F#中,string
类型实现了seq<_>
接口,这意味着您可以将字符串视为字符序列,但是反过来却很难看。
一种选择是使用seq<seq<char>>
将seq<char>
变成一个Seq.concat
,然后将其转换为seq<string>
,然后可以使用String.concat
进行连接:
result |> Seq.concat |> Seq.map string |> String.concat ""
可能更有效,但不太优雅的选择是将seq<char>
转换为array<char>
,然后将其传递给System.String
构造函数:
result |> Seq.concat |> Seq.toArray |> System.String