Fear and loathing of the "perification" of Smalltalk
Martin Beck
martin.beck at hpi.uni-potsdam.de
Fri Sep 14 19:01:54 UTC 2007
Am Donnerstag, 13. September 2007 22:00:55 schrieb Peter William Lount:
> Hi,
Hi, first I want to say, that I'm thinking of the same ideas that you think of
and I really like the [a. b. c.] values idea.
> [
> Object subclass: #Person.
>
> Person
> addInstanceVariable: #firstName;
> addInstanceVariable: #middleName;
> addInstanceVariable: #lastName.
>
> "Block form."
> Person addInstanceMethod: [firstName: aString | firstName := aString ].
>
> "Same method as the line above, in method form this time."
> Person addInstanceMethod: [
> firstName: aString
> firstName := aString
> ].
>
However, you indeed change the syntax of blocks for merging block syntax with
method syntax when you say
[firstName: aString | firstName := aString ].
aren't you? at least as far as I know ST80... ;) . I would prefer something
like this:
Person addInstanceMethod: [ :aString | firstName := aString ] named:
#firstName:
I personally like to see a Block as a simple collection of statements. That it
is internally compiled to some bytecode sequence _not_ necessarily
representing the different statement borders is just an optimization for the
sake of speed. Howerver, instead of byte code I'm dreaming of some kind of
AST... Be aware, that you can represent any tree data structure with a
sequential array resulting in just another form of "byte code". ;)
> All the best,
>
> Peter
Regards,
Martin
More information about the Squeak-dev
mailing list
|