On Sun, Jan 5, 2020, 15:51 xap <x...@router.33mail.com> wrote: > hi, I'm just starting out w/ pharo and have a question re your code; > specifically, in > > reject: > [ :word | (word sameAs: aWord) or: [ word asLowercase asBag ~= > charBag ] ] > > is that inner block needed? would it be less smalltalk-esque to write, say: > > reject: > [ :w | (w = aWord) or: (w asLowercase asBag ~= charBag) ] > > thx! >
The answer to your question is provided by looking at the definition of the #or: message. Specifically, look on the class Boolean and its subclasses. They should tell you what kinds of objects are allowed for the argument. There is also an #| message which does what you have asked the #or: message to do. Study the differences in their definitions in the Boolean hierarchy. > separately recently I watched an alan kay interview in which he says an oo > program is typically much smaller than its imperative counterpart and i > wondered why. Well, it seems that reduction comes from the language/system > providing a zillion methods -- asBag, here -- one would otherwise need to > implement, oneself :) > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > >