Dzaima/APL: Difference between revisions
Jump to navigation
Jump to search
m (Text replacement - "Category:Tacit programming" to "Category:Languages with tacit programming") |
(Big ints in infobox) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
| index origin = 0 or 1 | | index origin = 0 or 1 | ||
| function styles = [[dfn]], [[tacit]] | | function styles = [[dfn]], [[tacit]] | ||
| numeric types = 64-bit float | | numeric types = 64-bit float, arbitrary-precision integer | ||
| unicode support = full | | unicode support = full (as UTF-16) | ||
| released = 2018 | | released = 2018 | ||
| developer = [ | | developer = [[dzaima]] | ||
| latest release version = 0.1. | | latest release version = 0.1.7 / 2020-05-13 | ||
| implementation | | implementation languages = [[wikipedia:Java (programming language)|Java]], [[wikipedia:Processing (programming language)|Processing]] | ||
| source = [https://github.com/dzaima | | source = [https://github.com/dzaima/APL GitHub] | ||
| platforms = JVM, Android | | platforms = JVM, Android | ||
| license = [[wikipedia:MIT License|MIT]] | | license = [[wikipedia:MIT License|MIT]] | ||
| documentation = [https://github.com/dzaima/APL/blob/master/docs/chars.txt docs] | | documentation = [https://github.com/dzaima/APL/blob/master/docs/chars.txt docs] | ||
| influenced by = [[Dyalog APL]], [[J]], [[K]] | | influenced by = [[Dyalog APL]], [[J]], [[K]] | ||
| run online = [https://tio.run/#apl-dzaima TIO] | | run online = [https://tio.run/#apl-dzaima TIO] | ||
}} | }} | ||
'''dzaima/APL''' is an implementation of APL in Java, created and maintained by | '''dzaima/APL''' is an implementation of APL in Java, created and maintained by [[dzaima]]. It is primarily based on [[Dyalog APL]], but handles some parts of the language more strictly and includes additional primitive functions and operators while adding dictionaries as a native datatype. It also includes [[wikipedia:Processing (programming language)|Processing]] integration. | ||
dzaima/APL adds many new primitives and extensions to existing primitives, most taken from or inspired by [[Adám Brudzewsky]]'s experimental [[Extended Dyalog APL]], for example: | dzaima/APL adds many new primitives and extensions to existing primitives, most taken from or inspired by [[Adám Brudzewsky]]'s experimental [[Extended Dyalog APL]], for example: | ||
* < | * <syntaxhighlight lang=apl inline>⍮</syntaxhighlight> [[Pair]] (<syntaxhighlight lang=apl inline>{⍺ ⍵}</syntaxhighlight>) | ||
* < | * <syntaxhighlight lang=apl inline>⊇</syntaxhighlight> [[Select]] (<syntaxhighlight lang=apl inline>⌷⍤0 99</syntaxhighlight>) a.k.a. "sane indexing", i.e. select major cells | ||
* < | * <syntaxhighlight lang=apl inline>⍛</syntaxhighlight> [[Reverse Compose]] (<syntaxhighlight lang=apl inline>{(⍺⍺ ⍺) ⍵⍵ ⍵}</syntaxhighlight> — compare with <syntaxhighlight lang=apl inline>∘</syntaxhighlight> which is <syntaxhighlight lang=apl inline>{⍺ ⍺⍺ (⍵⍵ ⍵)}</syntaxhighlight> | ||
It also adds several unique additions from [[J]] and [[K]]: | It also adds several unique additions from [[J]] and [[K]]: | ||
* < | * <syntaxhighlight lang=apl inline>⍡</syntaxhighlight> Cumulative repeat (like <syntaxhighlight lang=apl inline>⍣</syntaxhighlight> but returns a list of iterations) | ||
* < | * <syntaxhighlight lang=apl inline>⍁</syntaxhighlight> For each diagonal (J's <syntaxhighlight lang=apl inline>/.</syntaxhighlight>) | ||
* < | * <syntaxhighlight lang=apl inline>ᐵ</syntaxhighlight> and <syntaxhighlight lang=apl inline>ᑈ</syntaxhighlight> Each-left and Each-right (K's <syntaxhighlight lang=apl inline>\:</syntaxhighlight> and <syntaxhighlight lang=apl inline>/:</syntaxhighlight>) | ||
As of 2019, this is the only APL with a native dedicated Android app. This app wraps APL in an interface akin to that of graphic calculators. | As of 2019, this is the only APL with a native dedicated Android app. This app wraps APL in an interface akin to that of graphic calculators. |
Latest revision as of 03:39, 21 February 2024
dzaima/APL is an implementation of APL in Java, created and maintained by dzaima. It is primarily based on Dyalog APL, but handles some parts of the language more strictly and includes additional primitive functions and operators while adding dictionaries as a native datatype. It also includes Processing integration.
dzaima/APL adds many new primitives and extensions to existing primitives, most taken from or inspired by Adám Brudzewsky's experimental Extended Dyalog APL, for example:
⍮
Pair ({⍺ ⍵}
)⊇
Select (⌷⍤0 99
) a.k.a. "sane indexing", i.e. select major cells⍛
Reverse Compose ({(⍺⍺ ⍺) ⍵⍵ ⍵}
— compare with∘
which is{⍺ ⍺⍺ (⍵⍵ ⍵)}
It also adds several unique additions from J and K:
⍡
Cumulative repeat (like⍣
but returns a list of iterations)⍁
For each diagonal (J's/.
)ᐵ
andᑈ
Each-left and Each-right (K's\:
and/:
)
As of 2019, this is the only APL with a native dedicated Android app. This app wraps APL in an interface akin to that of graphic calculators.
External Links
APL dialects [edit] | |
---|---|
Maintained | APL+Win ∙ APL2 ∙ APL64 ∙ APL\iv ∙ Aplette ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ Dyalog APL Vision ∙ dzaima/APL ∙ GNU APL ∙ Kap ∙ NARS2000 ∙ Pometo ∙ TinyAPL |
Historical | A Programming Language ∙ A+ (A) ∙ APL# ∙ APL2C ∙ APL\360 ∙ APL/700 ∙ APL\1130 ∙ APL\3000 ∙ APL.68000 ∙ APL*PLUS ∙ APL.jl ∙ APL.SV ∙ APLX ∙ Extended Dyalog APL ∙ Iverson notation ∙ IVSYS/7090 ∙ NARS ∙ ngn/apl ∙ openAPL ∙ Operators and Functions ∙ PAT ∙ Rowan ∙ SAX ∙ SHARP APL ∙ Rationalized APL ∙ VisualAPL (APLNext) ∙ VS APL ∙ York APL |
Derivatives | AHPL ∙ BQN ∙ CoSy ∙ ELI ∙ Glee ∙ I ∙ Ivy ∙ J ∙ Jelly ∙ K (Goal, Klong, Q) ∙ KamilaLisp ∙ Lang5 ∙ Lil ∙ Nial ∙ RAD ∙ Uiua |
Overviews | Comparison of APL dialects ∙ Timeline of array languages ∙ Timeline of influential array languages ∙ Family tree of array languages |