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.

When using functions that return values through references in the argument list, just pass the variable name with an ampersand. For example the following code will compute an eigenvalue of a matrix A with initial eigenvector guess x, and store the computed eigenvector into the variable named 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.

References are best explained by an example:

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

now a contains 2. You can also reference functions:

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

gives us 4.