Jelly: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Text replacement - "Category:Programming languages" to "Category:List-based array languages") |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{DISPLAYTITLE:Jelly}}{{Infobox array language | {{DISPLAYTITLE:Jelly}}{{Infobox array language | ||
| title = Jelly | | title = Jelly | ||
| array model = [[ | | array model = [[List model|Lists]] | ||
| index origin = 1 | | index origin = 1 | ||
| function styles = [[tacit | | function styles = [[tacit]] | ||
| numeric types = unbounded float | | numeric types = unbounded float | ||
| unicode support = full | | unicode support = full | ||
Line 10: | Line 10: | ||
| latest release version = 70c9fd9 / 18 Jan 2019 | | latest release version = 70c9fd9 / 18 Jan 2019 | ||
| implementation language = [[wikipedia:Python (programming language)|Python]] | | implementation language = [[wikipedia:Python (programming language)|Python]] | ||
| source = [https://github.com/DennisMitchell/ | | source = [https://github.com/DennisMitchell/jellylanguage GitHub] | ||
| platforms = Any | | platforms = Any | ||
| license = [[wikipedia:MIT License|MIT]] | | license = [[wikipedia:MIT License|MIT]] | ||
| documentation = [https://github.com/DennisMitchell/jellylanguage/wiki Github Wiki] | | documentation = [https://github.com/DennisMitchell/jellylanguage/wiki Github Wiki] | ||
| influenced by = [[Dyalog APL]], [[J]] | | influenced by = [[Dyalog APL]], [[J]] | ||
| influenced = [[Jellyfish]] | |||
| run online = [https://tio.run/#jelly TIO] | | run online = [https://tio.run/#jelly TIO] | ||
}} | }} | ||
'''Jelly''' is | '''Jelly''' is an APL-like language inspired by [[J]]. It extends J with many built-ins intended to give Jelly an advantage in [[code golf]], e.g. divmod, the hash function, and string compression. Jelly uses different terminology from normal APL usage. Built-in functions are called ''atoms'', while derived functions are called ''links''. Newlines or statement separators are used to separate links, the last line of the program (''chain'') is called the main link. | ||
* Like [[K]], Jelly uses the [[list model]] for its arrays. | |||
* Like APL, Jelly uses a wide range of Unicode [[glyph]]s. However, Jelly extends the glyph set to 256 characters from the US International keyboard, as well as the addition of 2-character digraphs. | |||
* Unlike any other language in the APL family, Jelly atoms have a fixed [[valence]], making Jelly appear more like a stack-based language, and obviating the need for parentheses. | |||
Some constructs clearly show Jelly lineage through J to APL, e.g. summation can be written as <code>+/</code> (although Jelly also has a dedicated built-in for this). | |||
== External Links == | == External Links == | ||
* [https://tio.run/#jelly Try It Online] | * [https://tio.run/#jelly Try It Online] | ||
* [https://github.com/DennisMitchell/jellylanguage/wiki/Tutorial Tutorial] | * [https://github.com/DennisMitchell/jellylanguage/wiki/Tutorial Tutorial] | ||
{{APL dialects}} | {{APL dialects}}[[Category:List-based array languages]][[Category:Languages with tacit programming]][[Category:Left to right]] |
Latest revision as of 22:46, 24 January 2024
Jelly is an APL-like language inspired by J. It extends J with many built-ins intended to give Jelly an advantage in code golf, e.g. divmod, the hash function, and string compression. Jelly uses different terminology from normal APL usage. Built-in functions are called atoms, while derived functions are called links. Newlines or statement separators are used to separate links, the last line of the program (chain) is called the main link.
- Like K, Jelly uses the list model for its arrays.
- Like APL, Jelly uses a wide range of Unicode glyphs. However, Jelly extends the glyph set to 256 characters from the US International keyboard, as well as the addition of 2-character digraphs.
- Unlike any other language in the APL family, Jelly atoms have a fixed valence, making Jelly appear more like a stack-based language, and obviating the need for parentheses.
Some constructs clearly show Jelly lineage through J to APL, e.g. summation can be written as +/
(although Jelly also has a dedicated built-in for this).
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 |