Descomposición en pasos

Ahora supongamos que la obtención de ese 18 fuese compleja. Por ejemplo, imaginemos que ese 18 sale de multiplicar 6 por 3 (este cálculo no es muy complejo, de acuerdo, pero supongamos que lo fuese). Lo que nos permite el lenguaje M es obtener esos valores por separado asignándolos a sendas variables (por ejemplo, a las variables a y b), hacer cálculos con esos valores obtenidos (y asignar los resultados a nuevas variables) y devolver el resultado final.

Si hacemos esto mismo en nuestra consulta, el código resultante podría ser el siguiente:

let a = 6, b = 3, c = a * b in c
Descomposición en pasos

Podríamos leer el código anterior de la siguiente forma: “hagamos que a valga 6, que b valga 3, que c valga el resultado de multiplicar a y b, y devolvamos c como resultado final”.

Comprobamos que:

  1. nuestra consulta está compuesta por una única expresión
  2. en el bloque let, definimos cálculos intermedios
  3. y, en el bloque in, devolvemos uno de los resultados intermedios como resultado final de la consulta

Obsérvese también que, en el bloque let, los cálculos intermedios van separados por una coma (y que, el último de esos cálculos -el previo al bloque in-, no va seguido por una coma).