do...until wisdom needed...

Graham Hughes ghughes at lynda.com
Fri May 11 01:34:03 EDT 2001


>>>>> "Ben" == Ben Hutchings <ben.hutchings at roundpoint.com> writes:

    Ben> Graham Hughes <ghughes at lynda.com> writes: <snip>
    >> I couldn't even write a RC4 stream encryptor in R5RS, because
    >> it didn't have a logical xor operation.

    Ben> Oh, please.  Any logical expression can be written with only
    Ben> nand operators or only nor operators.  Multiple logical
    Ben> operators are just syntactic sugar; also, they provide too
    Ben> many ways to do the same thing.

You misunderstand.  R5RS has no bitwise operators at all; they are not
present in the standard.  I could emulate them using arithmetic, but
that is pointless and would have been staggeringly roundabout.  I did
write the beast, but I used a vendor extension (logxor) to do it; I
assert that no significant Scheme programs can be written within the
bounds of R5RS.

A brief list of things R5RS simply cannot do that you would want to do:
 - talk to a network
 - call out to the surrounding operating system
 - open a temporary file securely
 - use a GUI
 - read environment variables (necessary for CGI work)
 - hash tables

A brief list of things that you can do in R5RS but that the standard
does not provide for, so you have to write it yourself or use a third
party library:
 - aggregate data (records/structures)
 - dictionaries
 - objects
 - modules
 - streams

R5RS is pretty, but useless.
-- 
Graham Hughes <ghughes at lynda.com>
(defun whee (n e) (subseq (let ((c (cons e e))) (nconc c c)) 0 n))



More information about the Python-list mailing list