User:Devon McCormick/MinimalBeginningJ

From J Wiki
Jump to: navigation, search

Minimal J for Beginners

One of the most difficult problems facing a beginner wanting to learn J is the overwhelming number of language primitives. Someone completely unfamiliar with the language might think that a language whose vocabulary fits on a single page - see "NuVoc" - would not present such a problem. However, at least one beginner - see the comments here - has expressed bewilderment at where to start when attempting to learn the myriad of basic J operations.

Based on the suggestions from this discussion, here is a reduced instruction set of some of the most useful and commonly-used J verbs, based on my own experience.

Basic J

Where there is a pair of words separated by a dot (•), we are (usually) showing both the monadic (single argument on the right) and dyadic (arguments on both sides of symbol) cases.

Basics Examples (paste into J)
=. Is (local assignment) =: Is (global assignment) loc=. 1 2 GLO=: 'foo'
_ Negative Sign • Infinity NB. Comment _3 = -3 NB. negative vs. negate
'string' Character string '' NB. Empty vector 'Hello, World!'
Arrays
$ Shape Of • Reshape # Tally • Copy 2 2 4 $ 1 2 11 22 1 2 3 # 1 2 3
, Ravel • Append ; Raze / Link , 2 2$99 23 ; 'skidoo'
{. Take }. Drop 3 {. 'foot' 2 }. 1 2 3 4
/ Insert • Table i. Integers • Index of + / 1 10 100 i. 10 'foo' i. 'o'
Math
+ Conjugate • Plus * Signum • Times 2 + 3 30 3 30 * 2
- Negate • Subtract % Reciprocal • Divide 1 10 - 5 6 2 3 5 % 3 4 6
^ Exponential • Power ^. Natural Log • Log 2 ^ i.17 2 10 ^. 4 100  ^. 2.71828
<. Floor • Minimum >. Ceiling • Maximum 2 3 4 <. 99 1 2  >. 1.1 0.5 1.9

We are starting to extend this minimal subset here.