Temas avanzados

Referencias a funciones

DKL ofrece la sentencia point para asignar a una variable la referencia a una función definida por el programador.

point variable to funcion

Donde variable obtendrá una referencia a la función indicada en función.

La llamada a una función se realiza con la sentencia that que tiene la siguiente sintaxis

that vf

Llama a la función referenciada por la variable vf

that vf(argumentos)

Llama a la función referenciada por la variable vf con los argumentos indicados

that vf(argumentos)->vr

Llama a la función referenciada por la variable vf con los argumentos indicados y asigna el valor de retorno a la variable vr

Funciones abiertas

Una función abierta en Devkron es aquella que permite la ejecución de un bloque de código externo en una parte específica de su código interno.

#include "dkli.dkh"
#!
module "función abierta"
{
    iterar::max
    {
        expose index
        
 
        for index=0;index<max
        {
            that
        }
 
        return "Fin"
    }
    
    go iterar (index:i) with(10)->r
    {
        do print(str(i))
    }
 
    do print(r)
}

La sentencia that en el cuerpo de una función será reemplazada por el código de un bloque go que la llama.

Una función abierta puede exponer variables internas (locales) como de solo lectura al bloque insertado por go enumerándolas con la sentencia expose.

En el ejemplo, la función iterar, expone la variable interna index.

En el bloque go que hace la llamada, el código insertado hace uso de index con el nombre i

La sentencia go por su parte, la siguiente sintaxis:

go funcion [(variable_expuesta:alias,...) [with (parámetros)] [->variable_resultado]

Entre corchetes las partes que son opcionales.

El resultado devuelto por la función, en el ejemplo se asigna a la variable r