[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] No procedure to ask the current time?
- To: Jeronimo Pellegrini <j_p@x>
- Subject: Re: [Scheme-reports] No procedure to ask the current time?
- From: Aubrey Jaffer <agj@x>
- Date: Wed, 01 Sep 2010 15:21:48 -0400 (EDT)
- Cc: scheme-reports@x
- In-reply-to: <20100831124933.GA26385@localhost> (message from Jeronimo Pellegrini on Tue, 31 Aug 2010 09:49:33 -0300)
- References: <20100831124933.GA26385@localhost>
| Date: Tue, 31 Aug 2010 09:49:33 -0300
| From: Jeronimo Pellegrini <j_p@x>
| I was wondering if it isn't worth to include the timing part of
| SRFI-18 in the small version of Scheme. The procedures that I
| suppose would be interesting are:
| - (current-time)
| - (time->seconds time)
| - (seconds->time x)
| - (time? obj)
| Just that. No threads, mutexes or signals.
| The reason for this is that those procedures would be useful
| to implement two important didactic examples:
| - A PRNG:
| I agree with those that think that including simple randomness
| in "small" Scheme is not encessary, since it's easy to write a
| PRNG that would work fine for didatic purposes: a linear
| congruential PRNG is trivial to write, easy to understand and
| a nice example of procedure. It's also a nice example of a
| referentially transparent procedure if you don't hide its
| state -- and later in the course it's possible to talk about
| encapsulation of state using it again as an example.
| However, it would be good to have some way to seed the PRNG
| with a minimally unpredictable number, which could be obtained
| from (time->seconds (current-time)) (for simple randomness
| for students this is usually good enough).
Linear-congruential PRNGs do not pass Marsaglia's (Diehard) PRNG
tests. RC4, which is as easy to write as LCPRNGs and is included in
SLIB, does pass Diehard
<http://people.csail.mit.edu/jaffer/slib_5.html#SEC119>. RC4 does 5
byte reads, a byte addition, and 5 byte writes per byte of output.
RC4 effectively computes a cryptographic hash of its key; you can't
improve on that.
We do students no favor by getting them accustomed to the flawed PRNGs
from the twentieth-century.
Scheme-reports mailing list