Difference between revisions of "Ngn/apl"

From APL Wiki
Jump to navigation Jump to search
Miraheze>Marshall
m
m (Links to complex numbers)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:ngn/apl}}
+
{{DISPLAYTITLE:ngn/apl}}{{Infobox array language
{{Infobox array language
 
 
| title                    = ngn/apl
 
| title                    = ngn/apl
 
| array model              = [[nested array model|nested]]
 
| array model              = [[nested array model|nested]]
 
| index origin            = 0
 
| index origin            = 0
 
| function styles          = [[dfn]], [[tacit]]
 
| function styles          = [[dfn]], [[tacit]]
| numeric types            = complex floats
+
| numeric types            = [[complex]] floats
 
| unicode support          = full
 
| unicode support          = full
 
| released                = 2011
 
| released                = 2011
Line 11: Line 10:
 
| latest release version  = 2018 (unversioned)
 
| latest release version  = 2018 (unversioned)
 
| implementation language  = [[wikipedia:Javascript|Javascript]]
 
| implementation language  = [[wikipedia:Javascript|Javascript]]
 +
| source                  = [https://gitlab.com/n9n/apl/blob/master/apl.js GitLab]
 
| platforms                = In-browser, [[wikipedia:Node.js|Node.js]]
 
| platforms                = In-browser, [[wikipedia:Node.js|Node.js]]
 
| license                  = [[wikipedia:MIT_License|MIT]]
 
| license                  = [[wikipedia:MIT_License|MIT]]
Line 17: Line 17:
 
| run online              = [https://repl.it/languages/APL REPL]
 
| run online              = [https://repl.it/languages/APL REPL]
 
}}
 
}}
 
+
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 Nick Nickolov in JavaScript, making it run in a under Node.js or in any modern browser.
 
  
 
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, [[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.
 
+
[[File:Ngn/apl|center|thumb|ngn/apl's [https://n9n.gitlab.io/apl/web demo interface]]]
 
== External link ==
 
== External link ==
 
* [http://archive.vector.org.uk/art10501160 ''Compiling APL to JavaScript''] article in the [[Vector Journal]]
 
* [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 Online demo]
 
* [https://plj541.github.io/APL.js/ Online session]
 
* [https://plj541.github.io/APL.js/ Online session]
 
* [https://repl.it/languages/APL Online REPL]
 
* [https://repl.it/languages/APL Online REPL]

Latest revision as of 15:31, 24 January 2020

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 (RX 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+Win (APL*PLUS) ∙ APL2APL64APL\ivCo-dfnsDyalog APLdzaima/APLGNU APLNARS2000ngn/apl
Historical Iverson notationA Programming LanguageA+ (A) ∙ APL#APL.68000APL.SVAPLXAPL\1130APL\360NARSopenAPLRowanSHARP APL (SAX) ∙ VisualAPL (APLNext) ∙ VSAPLYork APL
Derivatives ELIJK (Q, KDB+) ∙ LYaPASNialRAD