Referencias
Anterior | Capítulo 6. Programar con GEL | Siguiente

## Referencias

Para algunas funciones puede ser necesario devolver más de un valor. Esto se puede lograr al devolver un vector de valores, pero muchas veces resulta conveniente pasar una referencia a una variable. Puede pasar una referencia a una variable a una función, y la función fijará el valor, eliminando una referencia. Aunque éste es el principal uso de las referencias, no es el único.

Cuando se utilizan funciones que devuelven valores a través de referencias en la lista de argumentos, pase solo el nombre de la variable con un ampersand (&). Por ejemplo, el siguiente código calcula el valor propio de una matriz `A` con un vector propio inicial indeterminado `x`, y guarda el vector propio obtenido en la variable `v`:

    RayleighQuotientIteration (A,x,0.001,100,&v)

La manera como funcionan las referencias y la sintaxis que utilizan son similares al lenguaje C. El operador `&` hace referencia a una variable y `*` la elimina. Ambos pueden aplicarse sólo a un identificador, por lo que `**a` no es una expresión legal en GEL.

Las referencias se pueden explicar mejor utilizando un ejemplo:

    a=1;
    b=&a;
    *b=2;

ahora `a` contiene el valor 2. También puede hacer referencia a funciones:

    function f(x) = x+1;
    t=&f;
    *t(3)

devuelve el valor 4.

Anterior | Subir | Siguiente
Retorno | Inicio | Lvalues