3
edits
No edit summary |
m (Typo) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:ngn/apl}}{{Infobox array language | {{DISPLAYTITLE:ngn/apl}}{{Infobox array language | ||
| logo = [[File:Ngn-apl logo.png]] | |||
| title = ngn/apl | | title = ngn/apl | ||
| array model = [[nested array model|nested]] | | array model = [[nested array model|nested]] | ||
Line 19: | Line 20: | ||
'''ngn/apl''' is an APL bytecode compiler and interpreter by [[Nick Nickolov]]. Because it is implemented in [[wikipedia:Javascript|Javascript]], it can be run in [[wikipedia:Node.js|Node.js]] or any modern browser. | '''ngn/apl''' is an APL bytecode compiler and interpreter by [[Nick Nickolov]]. Because it is implemented in [[wikipedia:Javascript|Javascript]], it can be run in [[wikipedia:Node.js|Node.js]] or any modern browser. | ||
ngn/apl supports most of the core language of [[Dyalog APL 14.0]],: [[dfn]]s (< | ngn/apl supports most of the core language of [[Dyalog APL 14.0]],: [[dfn]]s (<syntaxhighlight lang=apl inline>{⍺ ⍵}</syntaxhighlight>), [[nested array]]s, [[complex number]]s (<syntaxhighlight lang=apl inline>1j2</syntaxhighlight>), [[Function train|forks and atops]], [[Multiple assignment|strand assignment]] (<syntaxhighlight lang=apl inline>(a b)←c</syntaxhighlight>), [[indexed assignment]] (<syntaxhighlight lang=apl inline>a[b]←c</syntaxhighlight>), and [[dop|user-defined operators]] (<syntaxhighlight lang=apl inline>{⍺⍺ ⍵⍵}</syntaxhighlight>), but does not support [[Key]] (<syntaxhighlight lang=apl inline>⌸</syntaxhighlight>), [[Rank (operator)|Rank (operator]] (<syntaxhighlight lang=apl inline>⍤</syntaxhighlight>) [[tradfn]]s (<syntaxhighlight lang=apl inline>∇R←X f Y</syntaxhighlight>), non-zero [[index origin]] (<syntaxhighlight lang=apl inline>⎕IO←1</syntaxhighlight>), [[comparison tolerance]] (<syntaxhighlight lang=apl inline>⎕CT</syntaxhighlight>), [[prototype]]s (it always uses zero as fill), [[modified assignment]] (<syntaxhighlight lang=apl inline>x+←1</syntaxhighlight>), [[keyword]]s (<syntaxhighlight lang=apl inline>:If</syntaxhighlight>), [[object-oriented programming]], or [[namespace]]s. It extends Dyalog APL with [[Infinity|infinities]] (<syntaxhighlight lang=apl inline>¯</syntaxhighlight> or <syntaxhighlight lang=apl inline>∞</syntaxhighlight>) and a few additional primitives. | ||
On December 27, 2020, Nickolov announced that he would discard his implementation.<ref>Nickolov, N. "ngn". [https://chat.stackexchange.com/transcript/message/56558504#56558504 Announcement]. [[APL Orchard]]. Stack Exchange chat.</ref> Soon after, [[Adám Brudzewsky]] took up the mantle of hosting the source and online demo.<ref>Brudzewsky, A. "Adám". [https://chat.stackexchange.com/transcript/message/56558600#56558600 Announcement]. [[APL Orchard]]. Stack Exchange chat.</ref> | On December 27, 2020, Nickolov announced that he would discard his implementation.<ref>Nickolov, N. "ngn". [https://chat.stackexchange.com/transcript/message/56558504#56558504 Announcement]. [[APL Orchard]]. Stack Exchange chat.</ref> Soon after, [[Adám Brudzewsky]] took up the mantle of hosting the source and online demo.<ref>Brudzewsky, A. "Adám". [https://chat.stackexchange.com/transcript/message/56558600#56558600 Announcement]. [[APL Orchard]]. Stack Exchange chat.</ref> | ||
Line 32: | Line 33: | ||
== References == | == References == | ||
<references/> | <references/> | ||
{{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]][[Category:Languages with tacit programming]][[Category: | {{APL dialects}}[[Category:APL dialects]][[Category:Nested array languages]][[Category:Leading axis languages]][[Category:Languages with tacit programming]][[Category:IR compilers]] |
edits