[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Addendum to my answers on ballot A



    Date:  4 June 1983 0039-EDT (Saturday)
    From: Guy.Steele@CMU-CS-A
    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.