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?

¿Fue útil?

Solución

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.

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top