Hi, Blocks are very useful when you need to evaluate code from an outside source. For example a BPM Process that have gateways with different conditions.
To the Smalltalk system conditions come as Strings and convert them to Smalltalk objects is very easy: self evaluate: '[:process | process amount > 1500]'. "condition inside a gateway of a process" And we have the block to evaluate and get the Boolean (to see what transition follow after the gateway). In other languages you have to process the condition String and do some kind of interpretation but is much more limited than a block. Of course there is a security issue here but very easy to overcome with an AST. If the conditions is: 'Smalltalk become: nil'. In my case all message can be sent to the block argument only and some other simple rules. regards, bruno -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html