1

R6RS 3.4 实施要求如下

...当应用于精确参数时,可能不精确的操作sqrt应该尽可能产生精确的答案(例如,精确 4 的平方根应该是精确 2)。

(1) 这是否意味着(* 0 2.2)必须产生0.0但从不0作为结果?

但是,这不是必需的。...

(2) 这是否意味着也(/ 4 2)可能产生2.0作为结果?

(3) 是否有以这种方式提供整数根的实现?一般来说,我如何获得整数平方根的功能?(这里是索引)(请不要递归/迭代实现)

4

1 回答 1

2

R6RS 有exact-integer-sqrt。它返回两个值,平方根和余数。如果需要,您可以丢弃第二个值。

允许(但不要求)在实现中考虑(* 0 x)(将任何值乘以一个精确的零)对于任何 x 都是精确的零。请参阅程序的R6RS说明*

于 2014-12-30T16:00:28.713 回答