This page is part of the web mail archives of SRFI 77 from before July 7th, 2015. The new archives for SRFI 77 are here. Eventually, the entire history will be moved there, including any new messages.
Marcin 'Qrczak' Kowalczyk wrote:
Per Bothner <per@xxxxxxxxxxx> writes:Since it *optional* static typing, I'm assuming that the specific operations are "consistent" in the sense of the following example: If (and (fixnum? x) (fixnum? y)) then: (eqv? (+ x y) (fx+ x y))It's not the same: (fx+ x y) returns a fixnum even if it overflows.
As I wrote: I'm *assuming* that + when operating on fixnums will return a fixnum even if it "overflows". I.e. that arithmetic on fixnums are defined "modularly" and fixnums are *not* just a subset of the integers. This implies that (fixnum? 0) is not true, though of course 0 can be trivially *converted* to a fixnum: (fixnum? (as <fixnum> 0)) is true. I can see that this might be a bit too radical. -- --Per Bothner per@xxxxxxxxxxx http://per.bothner.com/