Hola claudio, facundo
Muy clara tu explicacion claudio, sabrosa la discucion que tiraste facundo.
saludos kiko
Claudio <[EMAIL PROTECTED]> escribió:
Claudio <[EMAIL PROTECTED]> escribió:
Hola Kiko,
species no te retorna la clase del receptor, sino la especie
del mismo... En general esta se usa cuando se quiere construír un
objeto "de la especie" de otro. Por ejemplo, cuando a una collection le
enviás el mensaje:
#select: aBlock
te devuelve una nueva collection con aquellos elementos que cumplen la
condición de aBlock. Qué tipo de collection será la collection
resultante? fijate que no siempre es posible (o conveniente) que la
collection resultante sea de la misma clase que aquella que recibió el
#select: Por ejemplo, si hacemos lo siguiente:
(1 to: 20) select: [ :i | i isPrimo]
el receptor del #select: es (1 to:20), o sea una instancia de la clase
Interval (Un tipo de Collection). con este #select: estamos
seleccionando todos aquellos elementos del Interval que son primos
(asumo que tenemos un método en la clase Integer que testea si el
receptor es primo o no). Claramente el resultado no puede ser un
interval ya que la separación entre los primos no es constante,
entonces no podría devolver otro Interval...
en la clase Interval está implementado #species de forma tal que
devuelve la clase Array. de hecho el resultado de hacer
(1 to: 20) select: [ :i | i isPrimo]
es:
(2 3 5 7 11 13 17 19)
Consejo: Fijate quienes implementan #species y cómo, y fijate quienes
son senders de #species (Por ejemplo #select:) y vas a terminar de
entenderlo.
Saludos,
Claudio
Jose Gregoris wrote:
> Hola
>
>
> Quería saber cual es el proposito de el mensaje #species , ya que por su implementacion solo retorna la clase a la cual pertenese el objeto.
> No es lo mismo que enviar el mensaje #class o hay una diferencia semantica.
>
> Algo curioso es que en la mayoria de los ST el mensaje se implementa en Object, pero en MT solo se implementa en 5 lugares y no en Object.
>
> saludos kiko
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> --0-415474751-1146672288=:67746
> Content-Type: text/html; charset=iso-8859-1
> Content-Transfer-Encoding: quoted-printable
> X-Google-AttachSize: 699
>
>HolaQuería saber cual es el proposito de el mensaje #species , ya que por su implementacion solo retorna la clase a la cual pertenese el objeto.No es lo mismo que enviar el mensaje #class o hay una diferencia semantica.Algo curioso es que en la mayoria de los ST el mensaje se implementa en Object, pero en MT solo se implementa en 5 lugares y no en Object.saludos kiko__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
> --0-415474751-1146672288=:67746--
--~--~---------~--~----~------------~-------~--~----~
Ha recibido este mensaje porque está suscrito a Grupos de Google "clubSmalltalk" grupo.
Si quiere publicar en este grupo, mande un correo electrónico a [email protected]
Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED]
Para visualizar más opciones, visite este grupo enhttp://groups.google.com/group/clubSmalltalk
-~----------~----~----~----~------~----~------~--~---
- [clubSmalltalk] Species ??? Jose Gregoris
- [clubSmalltalk] Re: Species ??? Claudio
- [clubSmalltalk] Re: Species ??? Facundo Vozzi
- [clubSmalltalk] Re: Species ??? Jose Gregoris
Responder a
