[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] number->string bug
From: |
Peter Bex |
Subject: |
Re: [Chicken-users] number->string bug |
Date: |
Wed, 7 Jan 2009 10:20:03 +0100 |
User-agent: |
Mutt/1.4.2.3i |
On Tue, Jan 06, 2009 at 09:20:32PM -0600, Kevin Beranek wrote:
> Below is a test case followed by some sample output. One interesting
> thing to note about the output is that (number->string 99 2) produced
> two different values (2 and 75). Also of note is that I've tried
> various constructions of the following code with let statements at
> different levels, using let vs. set! in different places and different
> methods of looping but the bug remains in every combination I've tried.
I tried it in my Chicken 3 (3.0.1) and it failed there too, then I tried
the following small alteration:
(use srfi-13)
(let ((i 0) (val 0) (binary-val 0) (invalid #f) (j 0) (c 0))
(do ((i 0 (+ i 1))) ((= i 5000))
(set! val (random 100))
(set! binary-val (number->string val 2))
(set! invalid (not (string-every (char-set #\0 #\1) binary-val)))
(if invalid
(printf "(number->string ~a 2) = ~a\n" val binary-val))))
This works for me, so there's more to it than just "number->string is
not working".
Cheers,
Peter
--
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
is especially attractive, not only because it can be economically
and scientifically rewarding, but also because it can be an aesthetic
experience much like composing poetry or music."
-- Donald Knuth
pgpFtbLO3QjV1.pgp
Description: PGP signature