Podemos definir funciones, estas deben tener un nombre y una lista de parámetros. Deben ser declaradas como variables.
declare Mayor A B M
fun {Mayor X Y}
if (X > Y) then X else Y end
end
A = 30
B = 20
M = {Mayor A B}
{Browse M} % 30Los lenguajes se dividen en expresiones y declaraciones. Los valores solos son expresiones. Las funciones devuelven las expresiones sueltas, sin necesidad de agregar un return. Solo puede haber una expresión suelta en una función.
Procedimientos
Los procedimientos son conceptos aún más básicos que las funciones. Se utilizan variables no ligadas como parámetros.
Los procedimientos no devuelven un valor. El procedimiento puede ligar un valor a esa variable, y ser utilizado luego de la llamada al procedimiento.
declare Suma A B Z in
proc {Suma A B Z}
Z = A + B
end
A = 10
B = 5
{Suma A B Z}
{Browse Z} % 15Para imprimir en el navegador, utilizamos el procedimiento Browse.
{Browse '¡Hola Mundo!'}Este procedimiento es ejecutado en un hilo distinto.