RX0332

Dominio: Análisis sintáctico

Mensaje de error

%s: una acción no es un valor, así que un fn nunca se enlaza, se pasa ni se guarda (%s)

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

En tu script usaste el nombre de una función como si fuera un dato, y rush no lo permite. Es una decisión de diseño, con una razón filosófica: una función es una acción, y un dato es una cosa sobre la que se actúa. Confundirlas es un error ontológico grave. Por eso no puedes asignar una función a una variable, pasarla como argumento, meterla en un mapa ni usarla como receptor. Un ejemplo: escribir f igual a dbl, sin llamarla, o apply entre corchetes con dbl dentro. El motor no dice que el nombre no existe, porque existe: es un verbo. Lo que dice es que un verbo se llama, no se guarda. El mensaje te trae el nombre y la forma correcta. La solución es llamar a la función y pasar su respuesta, por ejemplo dbl con corchetes y su argumento. Y si lo que querías era elegir entre varias acciones, escribe un flujo con ramas, cada una llamando a su función por su nombre. Una acción se ejecuta; un dato se sostiene. No se mezclan.

Texto del catálogo de errores del motor de Rush.