Ngn/apl: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
No edit summary
m (16 revisions imported: Migrate from miraheze)
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:ngn/apl}}
{{Infobox array language
{{Infobox array language
| title                    = ngn/apl
| title                    = ngn/apl
Line 9: Line 10:
| developer                = Nick Nickolov
| developer                = Nick Nickolov
| latest release version  = 2018 (unversioned)
| latest release version  = 2018 (unversioned)
| implementation languages = [https://en.wikipedia.org/wiki/Javascript Javascript]
| implementation language  = [[wikipedia:Javascript|Javascript]]
| platforms                = In-browser, [https://en.wikipedia.org/wiki/Node.js NodeJS]
| platforms                = In-browser, [[wikipedia:Node.js|Node.js]]
| license                  = [https://en.wikipedia.org/wiki/MIT_License MIT]
| license                  = [[wikipedia:MIT_License|MIT]]
| website                  = [https://gitlab.com/n9n/apl gitlab.com/n9n/apl]
| website                  = [https://gitlab.com/n9n/apl gitlab.com/n9n/apl]
| influenced by            = [[Dyalog APL]]
| influenced by            = [[Dyalog APL]]
| run online              = [https://repl.it/languages/APL REPL]
}}
}}


{{Actually|ngn/apl}}
An APL interpreter written Nick Nickolov in JavaScript, making it run in a under Node.js or in any modern browser.


An APL interpreter written in JavaScript by Nick Nickolov. It can run in a browser or on NodeJS.
ngn/apl supports most primitives, [[dfn]]s (<source lang=apl inline>{⍺ ⍵}</source>), [[nested array]]s, [[complex number]]s (<source lang=apl inline>1j2</source>), [[Infinity|infinities]] (<source lang=apl inline>¯</source> or <source lang=apl inline>∞</source>), [[Function train|forks and atops]], [[Multiple assignment|strand assignment]] (<source lang=apl inline>(a b)←c</source>), [[indexed assignment]] (<source lang=apl inline>a[b]←c</source>), [[dop|user-defined operators]] (<source lang=apl inline>{⍺⍺ ⍵⍵}</source>), but does not support [[tradfn]]s (<source lang=apl inline>∇R←X f Y</source>), non-zero [[index origin]] (<source lang=apl inline>⎕IO</source>), [[comparison tolerance]] (<source lang=apl inline>⎕CT</source>), [[prototype]]s, [[modified assignment]] (<source lang=apl inline>x+←1</source>), [[keyword]]s (<source lang=apl inline>:If</source>), [[object-oriented programming]], [[namespace]]s.
 
ngn/apl supports most primitives, dfns (<code>{⍺ ⍵}</code>), nested arrays, complex numbers (<code>1j2</code>), infinities (<code>¯</code> or <code>∞</code>), [[forks and atops|Trains]], strand assignment (<code>(a b)←c</code>), indexed assignment (<code>a[b]←c</code>), user-defined operators (<code>{⍺⍺ ⍵⍵}</code>), but does not support tradfns (<code>∇R←X f Y</code>), non-zero index origin (<code>⎕IO</code>), comparison tolerance (<code>⎕CT</code>), prototypes, [[modified assignment]] (<code>x+←1</code>), [[control structures|Keywords]] (<code>:If</code>), [[object-oriented features|Object orientated programming]], namespaces.


== External link ==
== External link ==
 
* [http://archive.vector.org.uk/art10501160 ''Compiling APL to JavaScript''] article in the [[Vector Journal]]
* [https://n9n.gitlab.io/apl/web/index.html Online demo]
* [https://n9n.gitlab.io/apl/web/index.html Online demo]
* [https://plj541.github.io/APL.js/ Online session]
* [https://plj541.github.io/APL.js/ Online session]
Line 30: Line 30:
* [https://gitlab.com/n9n/apl Source code]
* [https://gitlab.com/n9n/apl Source code]


{{APL programming language}}
{{APL dialects}}

Revision as of 14:48, 20 November 2019



An APL interpreter written Nick Nickolov in JavaScript, making it run in a under Node.js or in any modern browser.

ngn/apl supports most primitives, dfns ({⍺ ⍵}), nested arrays, complex numbers (1j2), infinities (¯ or ), forks and atops, strand assignment ((a b)←c), indexed assignment (a[b]←c), user-defined operators ({⍺⍺ ⍵⍵}), but does not support tradfns (∇R←X f Y), non-zero index origin (⎕IO), comparison tolerance (⎕CT), prototypes, modified assignment (x+←1), keywords (:If), object-oriented programming, namespaces.

External link


APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000Pometo
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages