Question

j'utilise GNU APL 1.1 (svn 4460) sur Linux 2.6.32 Et j'ai quelques problèmes avec les définitions de fonction.

Cet extrait fonctionne comme prévu:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

Mais quand j'essaye ça

{2|⍵} 5

ou ca

ODD←{2|⍵}

J'obtiens une erreur de syntaxe. Les mêmes extraits fonctionnent bien ici.

Je suis un débutant complet de l'APL. Quelqu'un pourrait-il m'expliquer ce qui cause cette erreur de syntaxe?

Était-ce utile?

La solution

Votre premier exemple utilise la notation APL "Del" conventionnelle pour définir une fonction. Les deux seconds exemples utilisent la définition directe (communément appelée DFNS - prononcé de dee-funs) qui est une extension de Dyalog APL, et ne s'exécute évidemment pas dans l'interprète que vous utilisez. La facilité de définition des fonctions de cette façon est un grand avantage.

Autres conseils

La syntaxe DFNS (fragment de fonction dans les accolades bouclées) n'est pas prise en charge par tous les APL. S'il n'est pas pris en charge, attendez-vous à une erreur de syntaxe ou à une erreur nonce.

À ma connaissance, seulement Dyalog APL et NGN APL (voir http://ngn.github.io/apl/web/) soutiens le.

Sharp APL avait une fonction de définition directe mais la syntaxe était assez différente.

NGN APL ne prend pas en charge la définition de la fonction héritée, uniquement DFNS.

GNU APL a désormais un support pour ces DFN; Vous pouvez l'essayer en le compilant à partir du référentiel Subversion ou attendre la version 1.3.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top