[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: meta-comment on typing
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))
I can see that this might be a bit too radical.