Standard Types
These types are bound to identifiers having the form <TYPENAME>.
(This syntax and most of the names are as in RScheme.)
To find which Java classes these types map into, look in
kawa/standard/Scheme.java.
Note that the value of these variables are instances
of gnu.bytecode.Type,
not (as you might at first expect) java.lang.Class.
|
An arbitrary Scheme value - and hence an arbitrary Java object.
|
|
The type of Scheme numbers.
|
The type of quantities optionally with units.
This is a sub-type of <number>.
|
The type of complex numbers.
This is a sub-type of <quantity>.
|
The type of real numbers.
This is a sub-type of <complex>.
|
The type of exact rationl numbers.
This is a sub-type of <real>.
|
The type of exact Scheme integers.
This is a sub-type of <rational>.
|
|
The type of Scheme symbols.
|
|
The type of keyword values. See Keywords.
|
|
The type of Scheme lists (pure and impure, including the empty list).
|
The type of Scheme pairs. This is a sub-type of <list>.
|
The type of (mutable) Scheme strings.
This is not the same as (non-mutable) Java strings
(which happen to be the same as <symbol>).
|
The type of Scheme character values. This is a sub-type of
<object>, in contrast to type <char>, which is the
primitive Java char type.
|
|
The type of Scheme vectors.
|
|
The type of Scheme procedures.
|
|
The type of Scheme input ports.
|
|
The type of Scheme output ports.
|
This type name is a special case. It specifies the class
<java.lang.String> (just as <symbol> does).
However, coercing a value to <String> is done by
invoking the toString method on the value to be coerced.
Thus it "works" for all objects.
It also works for #!null.
When Scheme code invokes a Java methods any parameter
whose type is java.lang.String is converted
as if it was decalred as a <String>.
|
More will be added later.
A type specifier can also be one of the primitive Java types.
The numeric types <long>, <int>, <short>,
<byte>, <float>, and <double> are converted from the
corresponding Scheme number classes. Similarly, <char>
can be converted to and from Scheme characters. The type
boolean matches any object, and the result is false
if and only if the actual argument is #f.
(The value #f is identical to Boolean.FALSE,
and #t is identical to Boolean.TRUE.)
The return type <void> indicates that no value is returned.
A type specifier can also be a fully-qualified Java class name
(for example <java.lang.StringBuffer>). In that case,
the actual argument is cast at run time to the named class.
Also, <java.lang.StringBuffer[]> represents
an array of references to java.lang.StringBuffer objects.