Jelly: Difference between revisions

Jump to navigation Jump to search
222 bytes added ,  17:21, 28 April 2021
m
no edit summary
No edit summary
mNo edit summary
(8 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              = [[nested array model|nested]]
| array model              = [[List model|Lists]]
| index origin            = 1
| index origin            = 1
| function styles          = [[tacit]], [[dfn|links]]
| function styles          = [[tacit]]
| numeric types            = unbounded float
| numeric types            = unbounded float
| unicode support          = full
| unicode support          = full
Line 16: Line 16:
| 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 a dialect of APL in Python influenced by [[J]], created and maintained by CGCC user [https://codegolf.stackexchange.com/users/12012/dennis Dennis]. It extends APL with a plethora of extensions suitable for code golf, e.g. divmod, the hash function, and string compression.
'''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. [[Train]]s (which work similar to [[K]]'s) are called ''links''. Newlines or statement separators are used to separate links, the last line of the program is called the main link. Built-in functions are called ''atoms'', while derived functions are called ''chains''.
 
* 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 in the US International keyboard, as well as the addition of 2-character digraphs.
* 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.
* Jelly introduces new terms to re-define the APL terms. Unlike APL, Jelly 's dfns are called "links". Newlines are used to separate links, the last line of the program is called the main link. Built-in functions are called "atoms", the tacit composition of them is called a "chain".
* 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.
* There isn't a known way to configure the index origin in Jelly.


== 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:Programming languages]][[Category:Languages with tacit programming]]

Navigation menu