PARA

Sinopsis

(forma especial)

PARA nombre_de_procedimiento :argumento1 :argumento2 ...
TO nombre_de_procedimiento :argumento1 :argumento2 ...
Descripción

Le dice a Logo que acepte una definición de procedimiento. El procedimiento se llamará nombre_de_procedimiento y no debe existir otro procedimiento con el mismo nombre. Los parámetros se llamarán argumento1, argumento2, etc. Un procedimiento puede tener varios argumentos o ninguno. Los nombres de procedimientos y de argumentos se pueden escribir indistintamente en mayúsculas o minúsculas.

Diferente de los otros procedimientos, PARA toma como argumentos las palabras que se teclean en una línea de instrucciones, como si todas estuvieran entrecomilladas, y no los resultados de ejecutarlas. (Por ello es una «forma especial».)

FMSLogo admite un número variable de argumentos en los procedimientos. Todos los procedimientos tienen un número mínimo, por defecto y máximo de argumentos. El número máximo de argumentos puede ser infinito.

El número mínimo de argumentos es el número de parámetros requeridos. Un parámetro requerido se indica con la notación:

:nombre_de_argumento

Además de los parámetros requeridos puede haber cero o más parámetros opcionales, que se representan con la siguiente notación:

[:nombre_de_argumento valor_expresión_por_defecto]

Cuando se ejecuta el procedimiento, si no se proporcionan argumentos reales para los parámetros optativos, se pone como valor la evaluación de la correspondiente expresión «valor_expresión_por_defecto». Estos argumentos se procesan de izquierda a derecha, así valor_expresión_por_defecto se puede basar en un argumento previo. Por ejemplo:

PARA PROC :lista [:valor_inicial PRIMERO :lista]

Cuando se ejecuta el procedimiento como:

PROC [a b c]

El parámetro :lista tiene el valor [a b c] y el parámetro :valor_inicial tiene el valor "a. Cuando se ejecuta el procedimiento como:

(PROC [a b c] "x)

Entonces :lista tiene el valor [a b c] y :valor_inicial tiene el valor "x.

Después de todos los parámetros requeridos y de los optativos, puede venir un parámetro «restante», con la siguiente notación:

[:nombre]

Sólo puede haber un parámetro de este tipo. Cuando se ejecuta el procedimiento, el valor de este parámetro será una lista que contiene todos los argumentos reales que no se encajan en los parámetros requeridos u optativos. Por ejemplo:

PARA PROC :parám1 [:parám2 "foo] [:parám3]

Cuando se ejecuta el procedimiento como:

PROC "x

Entonces :parám1 tiene el valor "x, :parám2 tiene el valor "foo y :parám3 tiene el valor [] (la lista vacía). Cuando se ejecuta el procedimiento como:

(PROC "a "b "c "d)

Entonces :parám1 tiene el valor "a, :parám2 tiene el valor "b y :parám3 tiene el valor [c d].

El número máximo de argumentos para un procedimiento es infinito si tiene un parámetro «restante»; de lo contrario, es el número de parámetros requeridos más el número de parámetros optativos.

El número de argumentos por defecto para un procedimiento, que es el número de argumentos que acepta si no se lo ejecuta entre paréntesis, es generalmente igual a su mínimo. Si quieres un número diferente de argumentos por defecto debes indicarlo poniendo el número por defecto deseado después del último parámetro de la línea PARA.

Por ejemplo:

PARA PROC :parám1 [:parám2 "foo] [:parám3] 3

Este procedimiento tiene un mínimo de un argumento, tres argumentos por defecto y un máximo infinito.

FMSLogo te muestra un editorcito si ejecutas PARA desde el Centro de Comandos. Las instrucciones que tecleas en el editorcito se vuelven parte del definición del nuevo procedimiento. Cuando has completado la definición, puedes guardarla pulsando el botón FIN.

Ejemplo
PARA RECITA :veces :cosa
  REPITE :veces [ESCRIBE :cosa]
FIN

RECITA 2 "Hola
Hola
Hola
RECITA 3 "Adiós
Adiós
Adiós
Adiós

SourceForge.net Logo