質問

私は使っている 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の完全な初心者です。この構文エラーの原因となった人が私に説明できますか?

役に立ちましたか?

解決

最初の例では、従来のAPL「del」表記を使用して関数を定義します。 2番目の2つの例では、Dyalog APLによる拡張機能である直接的な定義(一般にDFNSと発音されるDEE -Funsと呼ばれる)を使用します。この方法で機能を定義しやすいことは、大きな利点です。

他のヒント

DFNS(巻き毛のブレースの関数フラグメント)構文は、すべてのAPLによってサポートされていません。サポートされていない場合は、構文エラーまたは非CEエラーを期待してください。

私の知る限り、dyoyog aplとngn aplのみ(参照 http://ngn.github.io/apl/web/)それをサポートします。

Sharp APLには直接的な定義機能がありましたが、構文はかなり異なっていました。

NGN APLはレガシー関数定義をサポートせず、DFNのみをサポートしています。

GNU APLは、このようなDFNをサポートしています。 Subversionリポジトリからコンパイルするか、リリース1.3を待つことで試してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top