next up previous contents
Next: Funciones fepxr Up: Tipos de funciones Previous: Tipos de funciones

Funciones expr

Esta clase de funciones están escritas en el propio LE-LISP. Su característica fundamental es que los argumentos son siempre evaluados. Se definen generalmente utilizando la función defun. El proceso de evaluación se realiza de la siguiente manera:

  1. Los valores de los nombres de los parámetros se guardan en la pila mientras se les asocian los nombres de los argumentos. Esto quiere decir que en este tipo de funciones las llamadas se realizan por valor.
  2. Se evalúan las expresiones en el cuerpo de la función. El resultado devuelto es el valor resultante de la evaluación de la última de dichas expresiones.
  3. Se deshacen las asignaciones realizadas en el primer paso. Se restauran los valores anteriores de los nombres de los parámetros, que habían sido guardados en la pila.

Como caso particular, en aquellas funciones expr cuya lista de parámetros contine únicamente &nobind, no se asigna ninguna variable. La función arg sin argumentos se utiliza en el cuerpo de dichas funciones para conocer el número de argumentos pasados en cada llamada, mientras que (arg n) devuelve el argumento de la posición n, considerando que el primero ocupa la posición 0. Esta clase particular de funciones se utiliza para crear funciones con un número variable de argumentos.

La compilación de funciones de tipo expr da lugar a funciones LLM3 que reciben el nombre de subr, de las cuales existen entre 400 y 500 en el sistema.



Miguel A. Alonso Pardo
Thu Nov 20 15:31:06 CET 1997