最初の例では、従来のAPL「del」表記を使用して関数を定義します。 2番目の2つの例では、Dyalog APLによる拡張機能である直接的な定義(一般にDFNSと発音されるDEE -Funsと呼ばれる)を使用します。この方法で機能を定義しやすいことは、大きな利点です。
質問
私は使っている GNU APL 1.1 (svn 4460)
Linuxで 2.6.32
また、関数の定義にいくつかの問題があります。
このスニペットは予想通りに機能します:
∇R←ODD N
R←2|N
∇
(ODD L)/L←⍳10
しかし、私がこれを試すとき
{2|⍵} 5
またはこれ
ODD←{2|⍵}
構文エラーが発生します。同じスニペットが正常に実行されます ここ.
私はAPLの完全な初心者です。この構文エラーの原因となった人が私に説明できますか?
解決
他のヒント
DFNS(巻き毛のブレースの関数フラグメント)構文は、すべてのAPLによってサポートされていません。サポートされていない場合は、構文エラーまたは非CEエラーを期待してください。
私の知る限り、dyoyog aplとngn aplのみ(参照 http://ngn.github.io/apl/web/)それをサポートします。
Sharp APLには直接的な定義機能がありましたが、構文はかなり異なっていました。
NGN APLはレガシー関数定義をサポートせず、DFNのみをサポートしています。
GNU APLは、このようなDFNをサポートしています。 Subversionリポジトリからコンパイルするか、リリース1.3を待つことで試してみてください。
所属していません StackOverflow