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
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