[英]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.