Ngn/apl: Difference between revisions

Jump to navigation Jump to search
No change in size ,  09:54, 22 September 2022
m
Typo
m (Text replacement - "<source" to "<syntaxhighlight")
m (Typo)
Line 20: 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 (<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 additoinal primitives.
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>
3

edits

Navigation menu