Isaac Morland scripsit:

> > (q:call + 1 2 3) is equivalent to (q:call 3 3), which is an error.

I should have said that (q:call + 1 2 3) reduces to (q:call 3 3), which
is in normal form and not further reducible.  Irreducible expressions
are not errors in Q.

> What would be the Q S-expression equivalent to (+ 1 (+ 2 (+ 3 4)))?
> That is, the Scheme expression one would have to use instead of your
> example if Scheme + was strictly binary?

It would be the same, namely (q:call + 1 (q:call + 2 (q:call + 3 4)).
In native Q syntax, "1+2+3+4" is syntactic sugar (albeit very useful
sugar) for "(+) 1 ((+) 2 ((+) 3 4))", where (+) is the non-infix and
strictly binary version of +, as in Haskell; the other parens
are for grouping, as in infix languages generally.

> But when numbers are used for their most basic purpose -- counting --
> they must start with 0.

That is, provided you are interested in counting the null set.  Basic counting
starts with 1.

-- 
John Cowan  [EMAIL PROTECTED]    http://ccil.org/~cowan
No man is an island, entire of itself; every man is a piece of the
continent, a part of the main.  If a clod be washed away by the sea,
Europe is the less, as well as if a promontory were, as well as if a
manor of thy friends or of thine own were: any man's death diminishes me,
because I am involved in mankind, and therefore never send to know for
whom the bell tolls; it tolls for thee.  --John Donne

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to