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