Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!brunix!iris.brown.edu!jcg From: jcg@iris.brown.edu (James Grandy) Newsgroups: comp.lang.smalltalk Subject: Re: Smalltalk Implementation Summary Message-ID: <22792@brunix.UUCP> Date: 13 Dec 89 17:08:43 GMT References: <1989Dec6.235311.12726@comp.vuw.ac.nz> Sender: news@brunix.UUCP Organization: IRIS, Brown University Lines: 28 In article <1989Dec6.235311.12726@comp.vuw.ac.nz> kjx@comp.vuw.ac.nz (R James Noble) (you) write(s): > b) Blocks should be fully reentrant, and allow block temporaries. > Syntax: [ :a1 :a2 | t1 t2 | ... ] > Isn't this a bit hard to parse? How do you know, given that a block without temporaries looks like this: [ :a1 :a2 | ... ] , whether t1 is the receiver of the first message in the block or a temporary? Of course, if you drop the bar separator when there are no arguments, not only is the block easier to parse, but it now looks more like a method header: [ :a1 :a2 a1 foo: a2] Then, with arguments, the block is as before: [ :a1 :a2 | t1 t2 | t1 <- a1 foo a2 ] Maybe not feasible if you want to be language compatible with other Smalltalks, but... James Grandy (401) 862-1610 jcg@iris.brown.edu IRIS Brown University Box 1946, Providence, RI 02912