【问题标题】:How to take the number field from a sequence of BigInteger in F#?如何从 F# 中的 BigInteger 序列中获取数字字段?
【发布时间】: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#


【解决方案1】:

我们共同发现:

factTake 8 |> Seq.toList |> printfn "%A"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    相关资源
    最近更新 更多