[Off-Topic] Preguntas sobre Smalltalk (era: tortuga lenta)
Diego Gomez Deck <[email protected]>
| Newsgroups | gmane.education.small-land |
|---|---|
| Message-ID | <[email protected]> |
Hola Daniel,
> En Logo, ya que es un lenguaje en el que los datos
> pueden hacerse programas,
En Smalltalk no hay diferencias entre los "datos" y los "programas" ya
que ambas cosas son Objetos y estos se comunican emitiendo mensajes.
> existen dos procedimientos
> (rutinas en Basic, funciones en C) el uno llamado
> tortugalenta y el otro tortugarapida.
>
> Tortugalenta recibe una entrada (argumento) que
> es la velocidad. Con este dato de la velocidad
> redefine los procedimientos avanza, retrocede,
> giraizquierda y giraderecha, convirtiéndolos en
> versiones lentas, por ejemplo, si la velocidad
> es 40, redefine:
>
> copiadef "avanza "avanza.original
> copiadef "giraderecha "giraderecha.original
>
> para avanza :distancia
> repite 40 [avanza.original :distancia / 40]
> fin
>
> para giraderecha :giro
> repite 40 [giraderecha.original :giro / 40]
> fin
>
> Cómo se hace en Smalltalk para que un método
> redefina a otro método?
De la misma forma que se hace todo en Smalltalk: Enviando mensajes a
Objetos.
En el caso concreto se puede enviar un mensaje al objeto compilador, o a
la clase, etc.
> Es posible que un
> objeto se reprograme así mismo?
Es posible que un objeto le mande mensajes a cualquier objeto, entre los
objetos que tenemos hay algunos que pueden generar objetos que tienen
comportamiento.
En Smalltalk un objeto puede "reprogramar" a cualquier otro, inclusive a
si mismo.
> Daniel
-- Diego
------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/zCsqlB/TM
--------------------------------------------------------------------~->
Visita nuestro sitio en http://www.small-land.org
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/small_land/
<*> To unsubscribe from this group, send an email to:
[email protected]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/