簡體   English   中英

GNU APL中的大括號

[英]Braces in GNU APL

我在Linux 2.6.32上使用GNU APL 1.1 (svn 4460) ,我在函數定義方面遇到了一些問題。

此代碼段按預期工作:

∇R←ODD N
R←2|N
∇

(ODD L)/L←⍳10

但是當我試着這個

{2|⍵} 5

或這個

ODD←{2|⍵}

我收到語法錯誤。 相同的片段在這里運行良好。

我是APL的初學者。 有人能解釋一下導致這種語法錯誤的原因嗎?

您的第一個示例使用傳統的APL“del”表示法來定義函數。 后兩個例子使用直接定義(通常稱為dfns - 發音為dee-funs),這是Dyalog APL的擴展,顯然不會在你正在使用的解釋器中運行。 以這種方式定義功能的便利性是一個很大的優勢。

所有APL都不支持dfns(花括號中的函數片段)語法。 如果不支持,則會出現語法錯誤或nonce錯誤。

據我所知,只有Dyalog APL和NGN APL(見http://ngn.github.io/apl/web/ )支持它。

Sharp APL有一個直接的定義功能,但語法卻截然不同。

NGN APL不支持傳統功能定義,僅支持dfns。

GNU APL現在支持這樣的dfns; 您可以通過從subversion存儲庫編譯它或等待版本1.3來嘗試它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM