Frage

ich benutze GNU APL 1.1 (svn 4460) unter Linux 2.6.32 Und ich habe einige Probleme mit Funktionsdefinitionen.

Dieser Ausschnitt funktioniert wie erwartet:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

Aber wenn ich das versuche

{2|⍵} 5

oder dieses

ODD←{2|⍵}

Ich erhalte einen Syntaxfehler. Die gleichen Ausschnitte laufen gut hier.

Ich bin ein vollständiger Anfänger von APL. Könnte mir jemand erklären, was diesen Syntaxfehler verursacht?

War es hilfreich?

Lösung

Sie verwenden erstes Beispiel konventionelle APL "Del" -Stypation, um eine Funktion zu definieren. Die zweiten beiden Beispiele verwenden eine direkte Definition (allgemein als DFNs - ausgesprochen Dee -Funs), eine Erweiterung von Dyalog APL und läuft offensichtlich nicht in dem von Ihnen verwendeten Dolmetscher. Die einfache Definition von Funktionen auf diese Weise ist ein großer Vorteil.

Andere Tipps

Die DFNS -Syntax (Funktionsfragment in lockigen Klammern) wird nicht von allen APLs unterstützt. Wenn es nicht unterstützt wird, erwarten Sie einen Syntaxfehler oder Nonce -Fehler.

Meines Wissens nur dyalog APL und NGN APL (siehe http://ngn.github.io/apl/web/) unterstütze es.

Sharp APL hatte eine direkte Definitionsfunktion, die Syntax war jedoch ziemlich unterschiedlich.

NGN APL unterstützt keine Definition der Legacy -Funktion, sondern nur DFNs.

GNU APL hat jetzt eine Unterstützung für solche DFNs; Sie können es versuchen, indem Sie es aus dem Subversion -Repository zusammenstellen oder auf die Version 1.3 warten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top