Funciones

Hemos hecho ya uso de ellas, pero todavía no las hemos introducido oficialmente: En M, una función es un elemento que recibe un conjunto de valores de entrada y devuelve un valor único de salida. Un ejemplo de función es Text.Upper, que recibe un texto como argumento y devuelve dicho texto en mayúsculas.

Text.Upper("InteractiveChaos")
INTERACTIVECHAOS
Funciones estándar

En el lenguaje M hay dos tipos de funciones: las "funciones estándar" proveídas por la llamada "librería estándar", que son funciones ya definidas y que podemos usar en cualquiera de nuestras consultas. Se trata de unas 800 funciones de todo tipo: para el tratamiento de textos, de fechas, para el acceso a diferentes fuentes de datos... La función Text.Upper, por ejemplo, es de este tipo. Tienes documentación sobre estas funciones aquí.

El segundo bloque de funciones está formado por aquellas que creamos nosotros en nuestro código: las llamadas "funciones personalizadas". Por ejemplo, podríamos crear una función que reciba un número y devuelva su cuadrado (y usar esta función para devolver el cuadrado del número 7) con el siguiente código:

let
    cuadrado = (n) => n * n
in
    cuadrado(7)
49
Funciones personalizadas

Veremos más adelante ambos tipos de funciones con más profundidad.