From: Marc LeBrun

Subject: Re: Random function.

Date: 2003-5-2 18:30

>=Arthur Flatau
> The point is that the call to the time function is buried somewhere > inside the call to make-random-state (when given the argument t). > There is no way to XOR or otherwise modify the number that is used to > create a new random state.
Right. But then there's no real need to, either.
> This is unlike, C, for instance where you > can XOR the time with the machine's IP address (or similar schemes) to > initial the random number generator. The only portable way to > initialize the random number generator is with a call to make-random-state.
The definition is arguably a "Good Thing" because it completely hides all the implementation details, such as whether it's based on time or radioactive decay (see http://www.fourmilab.ch/hotbits/), whether the "state" is only a fixnum or something more robust, etc. Sanitary practice is to always consider all inscrutable system-supplied generators simply as somewhat suspect noise sources anyway, which you can use to implement suitable randomness for your application.
> Wow, it is not often that I come up with advantages of C over Common
Lisp. :-) (Philosophically, having to rely on ANY non-open-source generator isn't an advantage, no matter how many random features it advertises! If you want real control, code your own...<;-) It's all pretty academic. The probability of two programs initializing within exactly the same window is probably less than lightning striking the user.