如何从 F# 中的 BigInteger 序列中获取数字字段?
How to take the number field from a sequence of BigInteger in F#?
以这个阶乘序列为例:
factTake 5;;
val it : seq<System.Numerics.BigInteger> =
seq [1 {IsEven = false;
IsOne = true;
IsPowerOfTwo = true;
IsZero = false;
Sign = 1;}; 2 {IsEven = true;
IsOne = false;
IsPowerOfTwo = true;
IsZero = false;
Sign = 1;}; 6 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = false;
Sign = 1;}; 24 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = false;
Sign = 1;}; ...]
如何将结果中的数字收集到列表中,如下所示:
[1; 2; 6; 24]
更新
感谢@Nicole A 和@RCH 的评论。问题原来很简单:
factTake 8 |> Seq.toList |> printfn "%A"
[1; 2; 6; 24; 120; 720; 5040; 40320]
val it : unit = ()
这个 post 来自 F# 的 printfn for fun and profit 也很有用:
Formatted text using printf!
我们共同发现:
factTake 8 |> Seq.toList |> printfn "%A"
以这个阶乘序列为例:
factTake 5;;
val it : seq<System.Numerics.BigInteger> =
seq [1 {IsEven = false;
IsOne = true;
IsPowerOfTwo = true;
IsZero = false;
Sign = 1;}; 2 {IsEven = true;
IsOne = false;
IsPowerOfTwo = true;
IsZero = false;
Sign = 1;}; 6 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = false;
Sign = 1;}; 24 {IsEven = true;
IsOne = false;
IsPowerOfTwo = false;
IsZero = false;
Sign = 1;}; ...]
如何将结果中的数字收集到列表中,如下所示:
[1; 2; 6; 24]
更新
感谢@Nicole A 和@RCH 的评论。问题原来很简单:
factTake 8 |> Seq.toList |> printfn "%A"
[1; 2; 6; 24; 120; 720; 5040; 40320]
val it : unit = ()
这个 post 来自 F# 的 printfn for fun and profit 也很有用: Formatted text using printf!
我们共同发现:
factTake 8 |> Seq.toList |> printfn "%A"