2,951
edits
No edit summary |
(Get rid of FP and FL mentions since they weren't a significant influence) |
||
Line 9: | Line 9: | ||
| developer = [[Jsoftware]] ([[Kenneth E. Iverson]], [[Roger Hui]]) | | developer = [[Jsoftware]] ([[Kenneth E. Iverson]], [[Roger Hui]]) | ||
| latest release version = J807 / 2018-10-08 | | latest release version = J807 / 2018-10-08 | ||
| influenced by = [[SHARP APL]], [[Rationalized APL | | influenced by = [[SHARP APL]], [[Rationalized APL]] | ||
| influenced = [[Dyalog APL]], [[NARS2000]], [[I]] | | influenced = [[Dyalog APL]], [[NARS2000]], [[I]] | ||
| implementation language= [[wikipedia:C (programming language)|C]] | | implementation language= [[wikipedia:C (programming language)|C]] | ||
Line 21: | Line 21: | ||
}} | }} | ||
'''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". | |||
== History == | == History == |