Hi I have some confusion with =, and I don't have access to a numerical analyst.
Some examples. Ypsilon: (= (inexact 245850922/78256779) (angle -1)) => #t (= 884279719003555/281474976710656 (angle -1)) => #t (= 245850922/78256779 (angle -1)) => #t (= 884279719003555/281474976710656+.0i (angle -1)) => #t Ikarus: (= (inexact 245850922/78256779) (angle -1)) => #t (= 884279719003555/281474976710656 (angle -1)) => #t (= 245850922/78256779 (angle -1)) => #f (= 884279719003555/281474976710656+.0i (angle -1)) => #f As the R6RS does not define anything in terms of what = should do given a mix of argument types, I think both of the interpretation of Ypsilon and Ikarus is correct. Here is what I understand happens in both. Ypsilon chooses to convert all arguments to their inexact forms if one or more inexact arguments are present. This seems to be in line with what 'normal' (read C#, perhaps Java/C++) languages do. Ikarus chooses to convert all arguments to their exact form if one or more exact arguments are present. I suspect the last one in Ikarus is a bug (normal mzscheme returns #t). Is my interpretation of the handling and report requirements correct? Cheers leppie _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
