Pergunta

estou usando GNU APL 1.1 (svn 4460) no Linux 2.6.32 E eu tenho alguns problemas com as definições de função.

Este trecho funciona conforme o esperado:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

Mas quando eu tento isso

{2|⍵} 5

ou isto

ODD←{2|⍵}

Eu recebo um erro de sintaxe. Os mesmos trechos funcionam bem aqui.

Eu sou um iniciante completo da APL. Alguém poderia me explicar o que causa esse erro de sintaxe?

Foi útil?

Solução

Seu primeiro exemplo usa a notação convencional do APL "del" para definir uma função. Os dois segundos exemplos usam definição direta (comumente conhecida como DFNS - Dee -Fun -FUNS), que é uma extensão do Dyalog APL e, obviamente, não é executado no intérprete que você está usando. A facilidade de definir funções dessa maneira é uma grande vantagem.

Outras dicas

A sintaxe DFNS (fragmento de função nos aparelhos encaracolados) não é suportada por todos os APLs. Se não for suportado, espere um erro de sintaxe ou erro nonce.

Que eu saiba, apenas Dyalog APL e NGN APL (veja http://ngn.github.io/apl/web/) apoie isso.

A Sharp APL tinha um recurso de definição direta, mas a sintaxe era bastante diferente.

O NGN APL não suporta definição de função herdada, apenas DFNS.

GNU APL agora tem um suporte para esses DFNs; Você pode experimentá -lo compilando -o no repositório de subversão ou aguardando a versão 1.3.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top