Lors de la programmation avec Gauche (0.9.4), lorsque j'ai effectué le processus de prise d'une logarithmique infinie, une erreur appelée Assertion a échoué et __Gauche elle-même s'est terminée __.
gosh> (log +inf.0)
"libnum.scm", line 347 (libnum_25log): Assertion failed: SCM_BIGNUMP(x)
Pour être honnête, je ne sais pas s'il s'agit d'une spécification Gauche ou d'une erreur inattendue, mais il semble que si vous demandez un logarithme infini, cela entraînera un échec d'assertion.
gosh> (log +inf.0)
"libnum.scm", line 347 (libnum_25log): Assertion failed: SCM_BIGNUMP(x)
gosh> (log -inf.0)
"libnum.scm", line 347 (libnum_25log): Assertion failed: SCM_BIGNUMP(x)
Au fait, que se passe-t-il en Python (3.5.1) ...
>>> import math
>>> math.log(float('inf'))
inf
>>> math.log(-float('inf'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
Il semble que seul l'infini négatif donne une erreur. __ Cependant, Python lui-même ne s'arrête pas. __ Semble être traité comme une exception normale.
Au fait, pour Python, si vous essayez de trouver $ log (0) $, vous obtiendrez une exception. En revanche, Gauche semble l'interpréter comme divergeant à l'infini négatif.
>>> math.log(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
gosh> (log 0)
-inf.0
Les relations zéro et infini sont confuses (´ ・ ω ・ `)
Recommended Posts