2,962
edits
(Bump latest release) |
m (Links to complex numbers) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
| index origin = 0 | | index origin = 0 | ||
| function styles = explicit, [[tacit]] | | function styles = explicit, [[tacit]] | ||
| numeric types = 64-bit integer, complex float, [[extended integer]], [[rational]] | | numeric types = 64-bit integer, [[complex]] float, [[extended integer]], [[rational]] | ||
| unicode support = full; distinct byte and code point types | | unicode support = full; distinct byte and code point types | ||
| released = 1990 | | released = 1990 | ||
| developer = [[Jsoftware]] ([[Ken Iverson]], [[Roger Hui]]) | | developer = [[Jsoftware]] ([[Ken Iverson]], [[Roger Hui]]) | ||
| latest release version = J901 / 2019-12- | | latest release version = J901 / 2019-12-15 | ||
| influenced by = [[SHARP APL]], [[Rationalized APL]], [[A+]] | | influenced by = [[SHARP APL]], [[Rationalized APL]], [[A+]] | ||
| influenced = [[Dyalog APL]], [[NARS2000]], [[I]] | | influenced = [[Dyalog APL]], [[NARS2000]], [[I]] | ||
| implementation language= [[wikipedia:C (programming language)|C]] | | implementation language= [[wikipedia:C (programming language)|C]] | ||
| source = [https://github.com/jsoftware/jsource/tree/master/jsrc GitHub] | |||
| platforms = x86, x86_64 | | platforms = x86, x86_64 | ||
| operating systems = Windows, Linux, macOS | | operating systems = Windows, Linux, macOS | ||
Line 20: | Line 21: | ||
| run online = [https://tio.run/#j TIO] | | run online = [https://tio.run/#j TIO] | ||
}} | }} | ||
'''J''' is an array language loosely following the [[SHARP APL]] tradition which uses [[wikipedia:ASCII|ASCII]] characters for primitive functionality and builds in [[leading axis theory]] and [[tacit programming]] as foundational design principles. J discards backwards compatibility with older APLs in order to simplify and regularize its syntax, redesign primitives to work on leading axes, and disentangle [[reduction]] from [[scan]]s and [[windowed reduction]]s (yielding the [[Prefix operator|prefix]] and [[infix operator]]s). However, J concepts such as [[function train]]s and the [[Indices]] function have been adopted by later APLs such as [[NARS2000]], [[Dyalog APL]], and [[dzaima/APL]]. J breaks the APL convention of writing primitives with a single glyph: instead, they are spelled with a single ASCII character possibly followed by one or two periods (<source lang=j inline>.</source>) or colons (<source lang=j inline>:</source>). It is also notable for its use of terms from English grammar to describe the language. For example, [[function]]s are called "verbs" while arrays are called "nouns". | '''J''' is an array language loosely following the [[SHARP APL]] tradition which uses [[wikipedia:ASCII|ASCII]] characters for primitive functionality and builds in [[leading axis theory]] and [[tacit programming]] as foundational design principles. J discards backwards compatibility with older APLs in order to simplify and regularize its syntax, redesign primitives to work on leading axes, and disentangle [[reduction]] from [[scan]]s and [[windowed reduction]]s (yielding the [[Prefix operator|prefix]] and [[infix operator]]s). However, J concepts such as [[function train]]s and the [[Indices]] function have been adopted by later APLs such as [[NARS2000]], [[Dyalog APL]], and [[dzaima/APL]]. J breaks the APL convention of writing primitives with a single glyph: instead, they are spelled with a single ASCII character possibly followed by one or two periods (<source lang=j inline>.</source>) or colons (<source lang=j inline>:</source>). It is also notable for its use of terms from English grammar to describe the language. For example, [[function]]s are called "verbs" while arrays are called "nouns". | ||
Line 119: | Line 119: | ||
| 4.06 || 2001-05-09 || <source lang=j inline>assert.</source> and <source lang=j inline>throw.</source>, Symbols (<source lang=j inline>s:</source>) and Unicode (<source lang=j inline>u:</source>), multiple axes in [[Cut]] operator | | 4.06 || 2001-05-09 || <source lang=j inline>assert.</source> and <source lang=j inline>throw.</source>, Symbols (<source lang=j inline>s:</source>) and Unicode (<source lang=j inline>u:</source>), multiple axes in [[Cut]] operator | ||
|- | |- | ||
| 5.01 || 2002-09-10 || Non-[[Close | | 5.01 || 2002-09-10 || Non-[[Close composition|close]] [[Under]] <source lang=j inline>&.:</source>, Bitwise Operations (<source lang=j inline>b.</source>), Polynomial Derivative (<source lang=j inline>p..</source>), Head (<source lang=j inline>{.</source>) and Tail (<source lang=j inline>{:</source>) allow [[empty]] arguments | ||
|- | |- | ||
| 5.02 || 2003-05-21 || | | 5.02 || 2003-05-21 || | ||
Line 149: | Line 149: | ||
| 8.07 || 2018-10-08 || Removed support for dot-style explicit arguments (e.g. <source lang=j inline>y.</source>) | | 8.07 || 2018-10-08 || Removed support for dot-style explicit arguments (e.g. <source lang=j inline>y.</source>) | ||
|- | |- | ||
| 9.01 || 2019-12- | | 9.01 || 2019-12-15 || Iteration primitives <source lang=j inline>F..</source>, <source lang=j inline>F.:</source>, <source lang=j inline>F.</source>, <source lang=j inline>F:.</source>, <source lang=j inline>F::</source>, <source lang=j inline>F:</source>; Remove calculus operators <source lang=j inline>d.</source>, <source lang=j inline>D.</source>, <source lang=j inline>D:</source>, <source lang=j inline>t.</source>, <source lang=j inline>t:</source>, <source lang=j inline>T.</source>, <source lang=j inline>..</source>, <source lang=j inline>.:</source>; <source lang=j inline>gerund"r</source> | ||
|} | |} | ||