20.06.2013 Views

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Fig. 9 Información <strong>al</strong>mac<strong>en</strong>ada para las funciones primitivas.<br />

Para el caso ‘<strong>de</strong> las funciones <strong>de</strong>finidas por el usuario se <strong>al</strong>mac<strong>en</strong>a un puntero <strong>al</strong> nodo <strong>de</strong> la lista <strong>de</strong><br />

primer nivel don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra la <strong>de</strong>finición <strong>de</strong> la función, más el código para id<strong>en</strong>tificar’ que se trata <strong>de</strong><br />

una función <strong>de</strong>finida por el usuario y no <strong>de</strong> una función primitiva (figura 10).<br />

Puntero a <strong>de</strong>finición<br />

<strong>de</strong> función<br />

Fig. 10 Información <strong>al</strong>mac<strong>en</strong>ada para las funciones <strong>de</strong>finidas por el usuario<br />

La forma funcion<strong>al</strong> composición, como fue m<strong>en</strong>cionado anteriorm<strong>en</strong>te, es repres<strong>en</strong>tada por medio<br />

<strong>de</strong> los arcos <strong>en</strong>tre los nodos asociados a cada una <strong>de</strong> las funciones que se <strong>en</strong>cu<strong>en</strong>tran compuestas <strong>en</strong>tre<br />

Sí y conforman la lista, El ord<strong>en</strong> <strong>en</strong> el que <strong>en</strong>cu<strong>en</strong>tran <strong>al</strong>mac<strong>en</strong>ados los nodos es inverso <strong>al</strong> <strong>de</strong> escritura<br />

<strong>en</strong> el programa para facilitar la ev<strong>al</strong>uación <strong>de</strong> las funciones, dado que por ejemplo para la expresión f . g<br />

: x se ev<strong>al</strong>uará primero g : x y luego a este resultado se le aplicará f, es <strong>de</strong>cir la ev<strong>al</strong>uación es f : (g : X)<br />

(figura 11).<br />

Fig. 11 Información <strong>al</strong>mac<strong>en</strong>ada para la forma funcion<strong>al</strong> composición f . g<br />

Para el caso <strong>de</strong> la forma funcion<strong>al</strong> const solam<strong>en</strong>te interesa mant<strong>en</strong>er un puntero <strong>al</strong> objeto que es<br />

parámetro <strong>de</strong> esta forma funcion<strong>al</strong> (figura 12). Este objeto pue<strong>de</strong> ser un v<strong>al</strong>or <strong>en</strong>tero, un stririg, un V<strong>al</strong>or<br />

booleano o una secu<strong>en</strong>cia. Dado que ya se contaba con la clase Lista y la clase Nodo se reutilizó este<br />

código para implem<strong>en</strong>tar las secu<strong>en</strong>cias con el solo agregado <strong>de</strong> la <strong>de</strong>finición <strong>de</strong> las clases <strong>de</strong>rivadas <strong>de</strong><br />

Nodo: TEntero, TBoolean y TString.<br />

Para soportar los nodos correspondi<strong>en</strong>tes a la forma funcion<strong>al</strong> const se <strong>de</strong>finió la clase TConstante<br />

como una clase <strong>de</strong>rivada <strong>de</strong> la clase Nodo.<br />

Fig. 12 Información <strong>al</strong>mac<strong>en</strong>ada para la forma funcion<strong>al</strong> const.<br />

Para la forma funcion<strong>al</strong> readi solam<strong>en</strong>te basta con mant<strong>en</strong>er un puntero a la zona <strong>de</strong> Constantes<br />

string <strong>en</strong> don<strong>de</strong> comi<strong>en</strong>za el m<strong>en</strong>saje que se visu<strong>al</strong>izará <strong>en</strong> ejecución <strong>al</strong> mom<strong>en</strong>to <strong>de</strong> pedir el ingreso <strong>de</strong><br />

un v<strong>al</strong>or <strong>en</strong>tero (figura 13). Como el m<strong>en</strong>saje es opcion<strong>al</strong> este puntero pue<strong>de</strong> v<strong>al</strong>er ocasion<strong>al</strong>m<strong>en</strong>te nil.<br />

se <strong>de</strong>finió para soportar este tipo <strong>de</strong> nodo la clase TReadint, <strong>de</strong>rivada <strong>de</strong> Nodo.<br />

236

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!