> J is a dialect of APL
That is an alarming statement, especially as the first line on the site.
> Words are expressed in the standard ASCII alphabet. Primitive words are spelled with one or two letters; two letter words end with a period or a colon. The entire spelling scheme is shown in the system summary. The verb ;: facilitates exploration of the rhematic rules. Thus:
;: 'sum =:+/_6.95*i.3 4'
┌───┬──┬─┬─┬─────┬─┬──┬───┐
│sum│=:│+│/│_6.95│*│i.│3 4│
└───┴──┴─┴─┴─────┴─┴──┴───┘
> The source code for word formation is in the files w*.c. The process is controlled by the function wordil (word index and length) and the table state. Rows of state correspond to 10 states; columns to 9 character classes. Each table entry is a (new state, function) pair. Starting at state S, a sentence is scanned from left to right one character at a time; the table entry corresponding to the current state and character class is applied.I'm already lost, and this is the first example.
It was the subject of quite some debate, see "Panel: Is J a Dialect of APL?" at http://www.jsoftware.com/papers/Vector_8_2_BarmanCamacho.pdf . Ken and Roger backed off this stance after witnessing the controversy.
"Ken Iverson - The dictionary of J contains an introductory comment that J is a dialect of APL, so in a sense the whole debate is Ken's fault! He is flattered to think that he has actually created a new language."
That example is what got me to start learning J which I have always found to be unreadable, much prefer my array languages to have their non-ascii symbols. A few nights playing with J and learning was enough to not be completely lost and able to make some progress, but it is still a challenge. When it says it "describes and implementation of J" it is not kidding, it describes the implementation and goes no further. Both the article and the code stick to this sort of terse and very concise language.
Me too, but
> This document describes an implementation of J in C. The reader is assumed to be familiar with J and C.
"The reader is assumed to be familiar with J and C."
And anyone reading this at the time would have been familiar with APL as well.
It's not intended to be beginner friendly. Like J, and like the original J dictionary, the values here are brevity, compactness, and essence. There is plenty of other more beginner friendly material on J out there.