APL.jl: Difference between revisions

Jump to navigation Jump to search
66 bytes added ,  08:25, 23 September 2022
m
Julia→W
(add APL.jl page)
m (Julia→W)
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Infobox array language
{{Infobox array language
| array model              = [[Julia]]
| array model              = [[wikipedia:Julia (programming language)|Julia]]
| index origin            = 1
| index origin            = 1
| function styles          = [[dfn]]
| function styles          = [[dfn]]
Line 7: Line 7:
| released                = 2016
| released                = 2016
| developer                = Shashi Gowda  
| developer                = Shashi Gowda  
| implementation languages = [[Julia]]
| implementation languages = [[wikipedia:Julia (programming language)|Julia]]
| license                  = [https://github.com/shashi/APL.jl/blob/master/LICENSE.md MIT "Expat" License]
| license                  = [https://github.com/shashi/APL.jl/blob/master/LICENSE.md MIT "Expat" License]
| website                  = [https://github.com/shashi/APL.jl/blob/master/LICENSE.md github.com]
| website                  = [https://github.com/shashi/APL.jl/blob/master/LICENSE.md github.com]
| download                = [https://github.com/shashi/APL.jl/archive/refs/heads/master.zip GitHub]
| download                = [https://github.com/shashi/APL.jl/archive/refs/heads/master.zip GitHub]
| influenced by            = [[Julia]]
| influenced by            = [[wikipedia:Julia (programming language)|Julia]]
| run online              = [https://nbviewer.org/gist/shashi/9ad9de91d1aa12f006c4 Jupyter notebook]
| run online              = [https://nbviewer.org/gist/shashi/9ad9de91d1aa12f006c4 Jupyter notebook]
}}
}}
Line 20: Line 20:
APL.jl works on a minor subset of APL that allows the compiler to parse and translate APL code into Julia code. Due to this, APl.jl always returns Julia data. Dfns defined using APl.jl can hence be used directly in Julia code like ordinary functions.  
APL.jl works on a minor subset of APL that allows the compiler to parse and translate APL code into Julia code. Due to this, APl.jl always returns Julia data. Dfns defined using APl.jl can hence be used directly in Julia code like ordinary functions.  


The <code>apl""</code> string macro parses and evaluatess an APL expression. The parser works on the reverse of the APL code, using the help of concatenation rules to recognize the syntax of the expression.<ref>https://github.com/shashi/APL.jl#implementation-notes</ref>
The <code>apl""</code> string macro parses and evaluates an APL expression. The parser works on the reverse of the APL code, using the help of concatenation rules to recognize the syntax of the expression.<ref>https://github.com/shashi/APL.jl#implementation-notes</ref>


APL.jl can be used from <code>apl""</code>, and as a REPL triggered with <code>/</code> from within the Julia REPL. It can be built and installed from source in the REPL using the <code>Pkg</code> library.
APL.jl can be used from <code>apl""</code>, and as a REPL triggered with <code>/</code> from within the Julia REPL. It can be built and installed from source in the REPL using the <code>Pkg</code> library.


== Differences from APL ==
== Differences from APL ==
APL.jl is not recommended for use as a standard APL implementation due to being incomplete and non-portable. The following is a non-exhaustive list of differences from modern APL.
The following is a non-exhaustive list of differences from modern APL.
* Unicode symbols used are not from Miscellaneous Technical block, are instead borrowed from Julia's set<ref>https://docs.juliahub.com/CalculusWithJulia/AZHbv/0.0.5/misc/unicode.html</ref>
* Unicode symbols used are not from Miscellaneous Technical block, are instead borrowed from Julia's set<ref>https://docs.juliahub.com/CalculusWithJulia/AZHbv/0.0.5/misc/unicode.html</ref>
* Majority of basic primitives and overloads missing<ref>https://github.com/shashi/APL.jl/blob/master/src/defns.jl</ref>
* Majority of basic primitives and overloads missing<ref>https://github.com/shashi/APL.jl/blob/master/src/defns.jl</ref>
Line 40: Line 40:


== References ==
== References ==
<references />
{{APL dialects}}
[[Category:APL dialects]]

Navigation menu