【发布时间】:2015-05-22 18:52:21
【问题描述】:
以这个阶乘序列为例:
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 = ()
F# 的 printfn 上的这篇博文也很有用: Formatted text using printf!
【问题讨论】:
-
BigIntegers 已经是“数字”。您希望 seq 是一个列表,BigIntegers 被截断(例如 int64)还是只打印没有 BigIntegers 内部的数字?
-
@RCH 我想要在没有 BigIntergers 内部的情况下打印数字。
-
@Nick 我看到你自己发现了,干得好。
-
@RCH 您的评论确实是一个很好的提示。谢谢!
-
你们中的一个人应该把它变成一个答案,这样我们就可以结束这个问题;)
标签: f#