4,493
edits
m (Link to amend) |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 21: | Line 21: | ||
| download = [https://code.jsoftware.com/wiki/System/Installation System/Installation] | | download = [https://code.jsoftware.com/wiki/System/Installation System/Installation] | ||
| documentation = [https://www.jsoftware.com/help/dictionary/contents.htm Dictionary], [https://code.jsoftware.com/wiki/NuVoc NuVoc] | | documentation = [https://www.jsoftware.com/help/dictionary/contents.htm Dictionary], [https://code.jsoftware.com/wiki/NuVoc NuVoc] | ||
| run online = [https://joebo.github.io/j-emscripten/ Emscripten] | | run online = [https://joebo.github.io/j-emscripten/ Emscripten], [https://jsoftware.github.io/j-playground/bin/html/ J playground] | ||
}} | }} | ||
'''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 155: | Line 155: | ||
| 9.02 || 2020-12-13 || "Direct definition" syntax for explicit functions, special semidual form <source lang=j inline>u&.:(a:`v)</source> added, minor incompatible changes | | 9.02 || 2020-12-13 || "Direct definition" syntax for explicit functions, special semidual form <source lang=j inline>u&.:(a:`v)</source> added, minor incompatible changes | ||
|- | |- | ||
| 9.03 || 2021-12-17 || Modifier trains and other combinations, foreigns to enable nameref caching, Kahan summation with | | 9.03 || 2021-12-17 || Modifier trains and other combinations, foreigns to enable nameref caching, Kahan summation with <source lang=j inline>+/!.0</source> | ||
|} | |} | ||