Pepsi and Coke (No. 3)
A few notes from Ian.
The implementation of "print". The following version would be adequate in the rounded paren syntax. Also, it takes advantage of existing print: method.
(define print (lambda (object) [StdOut print: object]))
There is "for" construct that uses "syntax". With "syntax", you can define a new syntax called "block". And, with block one could use collect: (and do: and others) in the ()-world:
['(1 2 3) collect: (block (arg) [arg * '3])]
How to write such "block" syntax is left to the reader until tomorrow. (I'll post another entry tomorrow or Friday.)