[gambit-list] integer->char for an integer from interval [128, 255]
Marc Feeley
feeley at iro.umontreal.ca
Wed Jun 8 10:19:50 EDT 2005
On 31-May-05, at 9:14 AM, Dmitry Lizorkin wrote:
> Hello!
>
> I am working with Gambit interpreter, and the following result is
> unexpected
> for me:
>
> (string (integer->char 127))
> ==> "\177"
>
> (string (integer->char 128))
> ==> ""
>
> (string (integer->char 256))
> ==> "\x100"
>
> I don't understand why the empty string is returned for an integer
> from the
> interval [128, 255].
>
> Could you please exlpain this to me? What should I do to obtain the
> character that corresponds to an integer from the interval [128, 255]?
The string that is returned is of length 1 (it is not the empty
string). It is just that the character (integer->char 128) has no
graphic representation on your terminal. The Gambit runtime will use
escapes for some characters (below 32, or = 127, or greater or equal
to 256). In the next release I will bring the upper limit down to
128, so that the output of write is always ASCII characters that have
a graphic representation. In the meantime you can do this:
> (##vector-set! ##main-readtable 9 127)
#<readtable #25>
> "\x80"
"\200"
Marc
More information about the Gambit-list
mailing list