[Newbies] Total newb...

Tony Giaccone tony at giaccone.org
Tue Oct 14 07:22:21 UTC 2008

Exactly Correct.

There exists a method on Set, with selector contains: which would on  
first examination seem to be the right thing.

Set contains: object

but contains seems to take a Block not an object.

so perhaps includes does what I want?

Clearly this works

>> validHands anySatisfy: [ :elem | elem respondsTo: #throwsAHand ]

in that if the class has a that selector it would be correct.

But what I really was looking for is

Given a set, how do I determine

1) If an object is a member of he set.

2) How do I specify when two objects are equal? Is part of this.

Obviously two objects which have the same address which I think in  
smalltalk is == operator are the same object..

but what if I want equality to be based on the value of some internal  
class value.

Maybe I'm thinking too much like a java programmer.


On Oct 14, 2008, at 2:56 AM, Matthias Berth wrote:

> Hi Michael,
> I think Tonys model of the game is  like this:
> A Player throws a hand. That can be any of "rock", "scissors", or
> "paper". Now someone (a Game object?) has to check if the player did
> not make a mistake, say by throwing a "well". The set of legal throws
> (in this game, anyway) is somehow defined by Tony. So the Game object
> checks if the throw is an element of the set of legal throws.
> Am I describing this correctly, Tony?
> Cheers
> Matthias
> On Tue, Oct 14, 2008 at 8:45 AM, Michael Haupt <mhaupt at gmail.com>  
> wrote:
>> Hi Tony,
>> On Tue, Oct 14, 2008 at 8:11 AM, Tony Giaccone <tony at giaccone.org>  
>> wrote:
>>> validHands := Set new.
>>> validHands add: Rock new; add Paper new; add Scissors  new.
>>> Assume I have a player object which responds to the method   
>>> throwsAHand with
>>> an instance of Rock Paper or Scissors.
>>> how do I craft
>>> validHands contains: aPlayer throwsAHand
>> 'ere, how about this:
>> validHands anySatisfy: [ :elem | elem respondsTo: #throwsAHand ]
>> Collection >> #anySatisfy: takes a block and evaluates it for all the
>> elements in the collection. It returns true if the block evaluates to
>> true for any of the elements, and false otherwise.
>> Object >> #respondsTo: accepts a symbol (!) denoting a message name
>> and returns true if the object in question understands that message.
>> Did I make clear what the above code does?
>> Best,
>> Michael
>> _______________________________________________
>> Beginners mailing list
>> Beginners at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners

More information about the Beginners mailing list