[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Addendum to my answers on ballot A
- To: Guy.Steele%CMU-CS-A@SU-DSN
- Subject: Addendum to my answers on ballot A
- From: David A. Moon <Moon%SCRC-TENEX%MIT-MC@SU-DSN>
- Date: Sat, 04 Jun 1983 05:56:00 -0000
- Cc: common-lisp@SU-AI
- In-reply-to: The message of 4 Jun 83 00:39-EDT from Guy.Steele at CMU-CS-A
Date: 4 June 1983 0039-EDT (Saturday)
While we're at it, let's reinstate ASET.
ASET was flushed because it uses left-to-right data motion, whereas everything
else in Common Lisp uses right-to-left data motion. Let's ignore the fact
that I think ASET is right and everything else is wrong, and not put it back in.
Regarding MAKE-RANDOM-STATE, I oppose the ability for the user to
provide an integer seed. The laser edition specifies that an argument
of T will cause MAKE-RANDOM-STATE to initialize the new state object
in a "random" manner. The reason for this specification is that the
implementor knows how many bits of state are in the state object
and the user does not, so the user can't know whether his seed
is "random enough"; the implementor can do a much better job of
randomizing the state. If the user wants to be able to make
several random-state objects that all begin with the same seed,
he is advised to call (MAKE-RANDOM-STATE T) and then make
several copies of the result. The object may be written out to
a file and read back in (this is specified precisely so that
you can get consistent random behavior in separate sessions).
This argument would be more persuasive if there was a way provided
to copy a random-state. There is no way to do it that doesn't involve
I/O to a temporary file or a string.