1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

(scm_equal_p): Remove real==fraction and fraction==real, they

must be #f according to R5RS.  (equal? follows eqv?, and for eqv? an
exact and inexact is #f.)
This commit is contained in:
Kevin Ryde 2004-08-17 23:19:04 +00:00
parent b1fbeb53bb
commit 728ad4b7cd

View file

@ -1,4 +1,4 @@
/* Copyright (C) 1995,1996,1997,1998,2000,2001,2003 Free Software Foundation, Inc.
/* Copyright (C) 1995,1996,1997,1998,2000,2001,2003, 2004 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -173,24 +173,6 @@ SCM_PRIMITIVE_GENERIC_1 (scm_equal_p, "equal?", scm_tc7_rpsubr,
&& SCM_COMPLEX_IMAG (x) == 0.0);
}
/* should we handle fractions here also? */
else if ((SCM_FRACTIONP (x)) && (SCM_INEXACTP (y)))
{
if (SCM_REALP (y))
return scm_from_bool (scm_i_fraction2double (x) == SCM_REAL_VALUE (y));
else
return scm_from_bool (SCM_COMPLEX_REAL (y) == scm_i_fraction2double (x)
&& SCM_COMPLEX_IMAG (y) == 0.0);
}
else if ((SCM_FRACTIONP (y)) && (SCM_INEXACTP (x)))
{
if (SCM_REALP (x))
return scm_from_bool (scm_i_fraction2double (y) == SCM_REAL_VALUE (x));
else
return scm_from_bool (SCM_COMPLEX_REAL (x) == scm_i_fraction2double (y)
&& SCM_COMPLEX_IMAG (x) == 0.0);
}
return SCM_BOOL_F;
}
switch (SCM_TYP7 (x))