Su primer ejemplo utiliza la notación convencional de APL "del" para definir una función. Los segundos dos ejemplos usan definición directa (comúnmente conocida como DFNS - pronunciado Dee -Funs), que es una extensión de Dyalog APL, y obviamente no se ejecuta en el intérprete que está utilizando. La facilidad de definir funciones de esta manera es una gran ventaja.
Aparatos ortopédicos en GNU APL
Pregunta
estoy usando GNU APL 1.1 (svn 4460)
en Linux 2.6.32
Y tengo algunos problemas con las definiciones de funciones.
Este fragmento funciona como se esperaba:
∇R←ODD N
R←2|N
∇
(ODD L)/L←⍳10
Pero cuando intento esto
{2|⍵} 5
o esto
ODD←{2|⍵}
Recibo un error de sintaxis. Los mismos fragmentos funcionan bien aquí.
Soy un principiante completo de APL. ¿Alguien podría explicarme qué causa este error de sintaxis?
Solución
Otros consejos
La sintaxis DFNS (fragmento de funciones en aparatos ortopédicos) no es compatible con todos los APL. Si no es compatible, espere un error de sintaxis o un error de nonce.
Que yo sepa, solo Dyalog APL y NGN APL (ver http://ngn.github.io/apl/web/) Apoyarlo.
Sharp APL tenía una característica de definición directa, pero la sintaxis era bastante diferente.
NGN APL no admite la definición de funciones heredadas, solo DFNS.
GNU APL ahora tiene un soporte para tales DFNS; Puede probarlo compilándolo desde el repositorio de subversión o esperar la versión 1.3.