EVAL() 
 Evalúa un bloque de código
------------------------------------------------------------------------------
 Sintaxis

     EVAL(<bBloque>, [<ListaArgBloque>]) --> UltimoValorBloque

 Argumentos

     <bBloque> es el bloque de código que se debe evaluar.

     <ListaArgBloque> es una lista de argumentos para enviar al bloque
     de código antes de que se evalúe.

 Devuelve

     EVAL() devuelve el valor de la última expresión dentro del bloque. Un
     bloque de código puede devolver un valor de cualquier tipo.

 Descripción

     EVAL() es una función de bloque de código. Es la función más básica de
     evaluación de bloque de código del sistema CA-Clipper. Un bloque de
     código es un valor de datos especial que hace referencia a un fragmento
     de código de programa compilado. Para obtener más información sobre
     bloques de código, consulte el capítulo "Conceptos Básicos" de la Guía
     de Programación y Utilidades.

     Para ejecutar o evaluar un bloque de código, llame a EVAL() con el
     valor de bloque y cualquier parámetro. Cuando se ejecuta el bloque se
     le suministran los parámetros. Los bloques de código pueden ser una
     serie de expresiones separadas por comas. Cuando se evalúa un bloque de
     código, el valor de retorno es el valor de la última expresión del
     bloque.

     Normalmente, el compilador de CA-Clipper compila un bloque de código en
     el tiempo de compilación. Sin embargo, existen ocasiones en las que es
     necesario compilar un bloque de código a partir de una cadena de
     caracteres en tiempo de ejecución. Este proceso puede realizarse
     utilizando el operador de macroexpresiones (&).

     EVAL() se utiliza, con frecuencia, para crear funciones de iteración.
     Estas son funciones que aplican un bloque a cada miembro de una
     estructura de datos. AEVAL(), ASORT(), ASCAN() y DBEVAL() son funciones
     de iteración (por ejemplo, AEVAL() evalúa un bloque por cada elemento
     de una matriz).

 Ejemplos

      En este ejemplo se crea un bloque de código que incrementa un
        número y después lo evalúa:

        bBloque := { |nArg| nArg + 1 }
        ? EVAL(bBloque, 1)           //Resultado: 2

      En este ejemplo se muestra la compilación de un bloque de
        código en tiempo de ejecución utilizando el operador de
        macroexpresiones (&):

        // Compilar una cadena en un bloque
        bBloque := &("{ |nArg| nArg + 1 }")

        // Evaluar el bloque
        ? EVAL(bBloque, 1)           // Resultado: 2

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: AEVAL() ASCAN() ASORT() DBEVAL()