Yo cuando recién vi turtle art, me encantó la idea de tener un verdadero stack. Después me di cuenta que era otra cosa :( . pero bueno, suscribo plenamente a tu idea!!!es más... eso haría que no fueran necesarias las variables locales a los procedimientos!(pensandolo mejor supongo que lo mejor sería poner un bloque &quot;local&quot; que simplemente hace un push que luego se saca al final del procedimiento), simplemente se van apilando valores.<br>
por lo demás me parece que igual hay que tener cuidado con los tipos de los argumentos, pero se soluciona facil poniendo las variables de distinto tipo en distintos stacks. La verdad que me solucionaste la vida ;)<br>Bueno, si bien todavía no puedo ejecutar, les mando una imagen para que les abra el apetito sacada directamente desde el TA.<br>
<br>¿Que tul?<br><br>Un abrazo,<br>Luis&nbsp; <br><br><div class="gmail_quote">2008/11/26 Daniel Ajoy <span dir="ltr">&lt;<a href="mailto:da.ajoy@gmail.com">da.ajoy@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Tue, 25 Nov 2008 05:02:44 -0500, Luis Michelena &lt;<a href="mailto:luis.michelena@gmail.com">luis.michelena@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Con respecto a los parametros, la verdad que le doy doy vueltas cada tanto pero no he encontrado ninguna que me parezca lo suficientemente simple e intuitiva, que funcione de una manera gráfica.<br>
<br>
<br>
</div>Te cuento a idea que tengo, no es muy usual en programación pero sí ha sido probada con éxito en uno que otro lenguaje &quot;raro&quot; como Forth, o las calculadoras HP, la calculadora de DOS llamada PolyMath, o la calculadora &quot;dc&quot; de linux.<br>

<br>
La idea es no pasar parámetros a una procedimiento, sino usar un &quot;stack&quot;, una verdadera pila en el sentido usual de Sistemas, también llamada FIFO (first in first out)<br>
<br>
Este stack sería visible en una pestaña.<br>
<br>
la ficha push (apila) coloca un dato en el stack<br>
la ficha pop (desapila) saca un dato del stack y devuelve su valor<br>
<br>
Cuando un procedimiento quiera pasar un dato a un sub-procedimiento hace lo siguiente:<br>
<br>
push dato<br>
subProc1<br>
<br>
por su parte subProc1 puede gastar el dato de la pila, así:<br>
<br>
avanza pop<br>
<br>
si el subprocedimiento necesita usar el &quot;parámetro pasado&quot; varias veces puede meterlo en una variable así<br>
<br>
poner.en.caja &quot;nombre pop<br>
avanza (caja &quot;nombre) * (caja &quot;nombre)<br>
<br>
El SUPER procedimiento puede prepara el stack con cualquier cantidad de valores para su consumo por el subprocedimiento<br>
<br>
El subprocedimiento puede prepara el stack para sus propios subprocedimientos<br>
<br>
Además un subprocedimiento puede pasar cualquier cantidad de valores al SUPER procedimiento dejándolos en el stack para que el SUPER procedimiento los use.<br>
<br>
<br>
Daniel<br>
<br>
PD. Tú nos adjuntaste unas fichas... la ficha que dice poner.en.pila debe decir poner.en.caja<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
Lista olpc-Sur<br>
<a href="mailto:olpc-Sur@lists.laptop.org">olpc-Sur@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-sur" target="_blank">http://lists.laptop.org/listinfo/olpc-sur</a><br>
</div></div></blockquote></div><br>