其他语言是否有内置的rational类型,比如scheme?

其他语言是否有内置的rational类型,比如scheme?,scheme,racket,division,representation,rational-numbers,Scheme,Racket,Division,Representation,Rational Numbers,我还没听说过,大多数语言似乎只是有整数的除法,或者是一个浮点数。这是scheme中的一个问题,因此没有在其他语言中使用吗?您是在询问分数吗?如果是这样的话,Smalltalk有: (4/5) + (3/2) 评估结果为: (23/10) 该计划的理性有大人物支持。大多数语言没有内置的bignum 在我看来,没有内置bignums的内置有理数是毫无意义的,因为没有bignums,在某个点之后,你就会开始失去精度,你也可以通过使用浮点来预先考虑损失。Common Lisp: 因素: 哈斯克尔9

我还没听说过,大多数语言似乎只是有整数的除法,或者是一个浮点数。这是scheme中的一个问题,因此没有在其他语言中使用吗?

您是在询问分数吗?如果是这样的话,Smalltalk有:

(4/5) + (3/2) 
评估结果为:

(23/10)

该计划的理性有大人物支持。大多数语言没有内置的bignum

在我看来,没有内置bignums的内置有理数是毫无意义的,因为没有bignums,在某个点之后,你就会开始失去精度,你也可以通过使用浮点来预先考虑损失。

Common Lisp: 因素: 哈斯克尔98: 你问:“这是scheme中的一个问题,所以没有在其他语言中使用吗?”答案是“没有”,但这是一个有趣的问题。广义地说,Scheme/Racket可能是一个语系的象征,当在“正确”和“易于实现”之间做出选择时,它每次都选择“正确”。许多其他语言所做的选择是将数字的表示显式地公开为一个小有限集的元素,并要求程序员在这个范围内操作。相反,Scheme/Racket提供了一种表示,它可以处理任意大的数字,仅受计算代码的机器内存的限制。这与决定并无不同 几乎所有现代编程语言都使用垃圾收集,而不是强迫程序员显式地分配和释放内存


正如克里斯指出的,数字作为理性的表现几乎总是与“大元凶”齐头并进。有很多语言支持bignum——Scheme、Racket、Ruby、Python等等——当然,任何图灵完整语言都可以扩展来处理bignum,包括C.

Oppend pharo和yep,奇怪的是我没有注意到这一点(我没有做过很多smalltalk,但仍然).FWIW-Clojure的比率行为与此答案中的常见Lisp比率相同。
CL-USER> (+ 4/5 3/2)
23/10
( scratchpad ) 4/5 3/2 + .
23/10
Prelude> (4/5) + (3/2) :: Rational
23 % 10