Re: I think I disagree, maybe
C's block and Smalltalk block are very different
C's one is a scoping construct, almost purely syntactic. People who do not understand C blocks aren't programmers at all. Not even bad ones, much less average. They should not even pretend.
Smaltalk's block is an object, a semantical thing. When you say
[do. something.]
you're not grouping 2 actions together. You're creating an instance of Closure class. And, oh by the way, it can also look like this:
[ :a :b| a + b]
or like this
[ :a :b | ^a+b]
The one above returns sum of a and be
The one below terminates the method, returning the sum as method's result.
And, ofcourse, you can say
^[something]
returning a block itself as the result of method.
--
Less Is More. In my book, About Face, I introduce over 50 powerful design axioms. This is one of them.
--Alan Cooper. The Inmates Are Running the Asylum