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

Re: DRAFT of the Revised Revised Report



A few comments:

1) How about consolidating descriptions of all procedures
that convert things to a string.  E.g. symbol->string
should be described in the same section as number->string.

Part II: A catalog of Scheme 

   II.5   Symbols                                                
   II.6   Numbers 
   II.7   Vectors
   II.8   Strings                                                
   II.9   String conversions.     <-!
   II.10  The object table                                        
   II.11  Procedures                                             
   II.12  Ports                                                  
   II.13  Input                                                  
   II.14  Output                                                 

2) When I use a one arm if, I am usually writting side effects,
but with a two arm if, I am not.  I suggest these two different
uses be glorified with different names.  In particular, let's
name the one arm if "when".

(if condition consequent alternative)      essential special form
(when condition expr1 expr2 ...)           essential special form

The result of the when is undefined.

3) Since define has two syntaxes, how about giving rec or
named-lambda the same two.  You could drop one of the
special forms as a result.

(named-lambda (name var1 ...) expr ...)              special form
(named-lambda name expr ...)                         special form

4) I think it is great that the value of set! is undefined.

5) What happened to iterate?  I use it much more than I use do.
It would be nice to name it loop, but I'm sure the T people would
object.

6) Macro not defined in the begining of the report.
                                                 v
`pattern                                       macro special form

7) It is excellent that there is an attempt to stop confusing
the empty list with boolean false.

8) The phrase "more inclined to..." does not sound like the kind
of words one should use in a description of eqv?.

be used to compare numbers.  The eqv? procedure is just like eq? 
except that it is more inclined to say that two numbers are the 
same.  

9) Missing predicate: list?.

(list? obj)                                   essential procedure

(define (list? l) (or (pair? l) (null? l)))

10) I was happy to find that property lists are not part of the
definition of symbols.

11) I vote for the long name instead of call/cc.

(call-with-current-continuation f)                      procedure

John