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.
Tony
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 <[EMAIL PROTECTED]>
wrote:
Hi Tony,
On Tue, Oct 14, 2008 at 8:11 AM, Tony Giaccone <[EMAIL PROTECTED]>
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@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners