[Newbies] subclasses detect
gruntfuttuck
gruntfuttuck at gmail.com
Tue Jul 31 22:33:11 UTC 2007
Thanks Steve, loving the tutorial. I wouldn't have given squeak another try
if it wasn't for your fabulous tutorial.
My Girlfriend asked my what I was thinking about, after sex, the other day.
I didn't dare tell her, squeak code, so I said, our new home that we are
getting together.
Steve Wessels wrote:
>
> David's message is excellent. The idiom used by this method is useful to
> understand. I actually make a point of describing it's role as a
> substitution for a Case statement in a section just a few pages later in
> the Tutorial. Check out page 048A.html
>
> - Steve
>
> Sent from my iPhone
>
> On Jul 31, 2007, at 4:00 PM, gruntfuttuck <gruntfuttuck at gmail.com> wrote:
>
>
> Thank you, that was very clear and helpful :-)
>
>
> David Mitchell-10 wrote:
>
> The message #subclasses returns a collection of Class objects
> The message #detect: returns the first object in that collection that
> matches the criteria in the block
>
> Since detect is the last message sent before the return, one class
> object will be returned.
>
> If more than one matches, the code will never know, since detect:
> returns on the first match. It won't evaluate to find the other match.
> That is, it short circuits the iteration.
>
> If you want to return a collection of matches, send the #select:
> message instead of #detect:.
>
> Nothing to do with class instance variables (those are rare birds --
> misused as often as they are needed).
>
> Also realize that the message isn't "subclasses detect". They are two
> separate messages. #detect: works with any collection. #subclasses
> returns a collection.
>
>
>
>
> On 7/31/07, gruntfuttuck <gruntfuttuck at gmail.com> wrote:
>
> Hello
>
> In the laser game tutorial by Stephan B Wessels I was intrerested by this
> code:
>
> directionFor: aSymbol
> ^ self subclasses
> detect: [:cls | cls directionSymbol = aSymbol]
>
> The code appears here at the bottom of the page:
> http://squeak.preeminent.org/tut2007/html/038.html
>
> What I read this code as doing, in this example is: return an symbol
> object
> which is a sublass instance varable, if it is the same as aSymbol.
>
> What would happen if more than one subclass object had a match?
>
> Also how else can subclasses detect: be used? It looks very interesting.
>
> Grunt
>
>
> --
> View this message in context:
> http://www.nabble.com/subclasses-detect-tf4196202.html#a11934239
> Sent from the Squeak - Beginners mailing list archive at Nabble.com.
>
> _______________________________________________
> 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
>
>
>
> --
> View this message in context:
> http://www.nabble.com/subclasses-detect-tf4196202.html#a11935026
> Sent from the Squeak - Beginners mailing list archive at Nabble.com.
>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
>
>
> ____________________________________________________________________________________
> Boardwalk for $500? In 2007? Ha! Play Monopoly Here and Now (it's updated
> for today's economy) at Yahoo! Games.
> http://get.games.yahoo.com/proddesc?gamekey=monopolyherenow
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>
>
--
View this message in context: http://www.nabble.com/subclasses-detect-tf4196202.html#a11936372
Sent from the Squeak - Beginners mailing list archive at Nabble.com.
More information about the Beginners
mailing list