R6RS 3.4 Implementation requirements读取
......当应用于精确时,
sqrt
等潜在的不精确操作 参数,应尽可能产生确切的答案(例如 精确4的平方根应该是精确的2)。
(1)这是否意味着(* 0 2.2)
必须产生0.0
但不会产生0
结果?
但是,这个 不需要。 ...
(2)这是否意味着(/ 4 2)
也可能产生2.0结果?
(3)是否有以这种方式提供整数根的实现?我如何获得整数平方根的功能? (这是index)(请不要递归/迭代实现)
答案 0 :(得分:2)
R6RS有exact-integer-sqrt
。它返回两个值,平方根和余数。如果需要,可以丢弃第二个值。
允许(但不要求)实现将(* 0 x)
(将任何东西乘以精确的零)视为任何x的精确零。请参阅*
程序的R6RS description。