1

我正在尝试为从 1 到 n 的所有数字生成最小公倍数,如OEIS-A003418 中所述。在 DrRacket REPL 中,我使用以下代码:

(lcm (apply values (build-list 256 add1)))

这给了我一个“结果不匹配”错误(预期为 1,收到 256)。当我省略时,lcm我会得到一个从 1 到 256 的序列输出到控制台。我不确定 arity 不匹配的原因,因为lcm应该能够接受任意多个参数(根据docs),并且apply当它是最外层函数而不是输入时似乎正在做我所期望的到lcm. 我错过了什么?另外,如果有更简单的方法来编写从 1 到 n 的 LCM,请随时分享。

4

1 回答 1

1

使用时,固定数量和非固定数量没有区别apply

(apply lcm (build-list 256 add1))
于 2017-08-01T18:18:49.650 回答