Er... I guess I should keep in mind that there's two very different meanings for "J version 7"
My response was about J 7.01: https://www.jsoftware.com/docs/archive/release/contents.htm Belatedly, I'm remembering that there was an early J version 7: https://www.jsoftware.com/docs/archive/release/status.htm#v7.0 The jargon here is that the newer one was called "J release 7". I had abandoned that distinction -- we use the release number as a version number. But, there was some recent mailing list discussion here which did mention that older version... That said, technically, these "J release X" versions might all be thought of as releases of J version 7, and the original J version 7 was release 1 of this version... But I wasn't thinking that deeply, and in this context, for me, this way of using those words was more of a coincidence than a deliberate naming choice. That said, the biggest changes between J release 1 of J version 7 and J release 7 (of J version 7) are the change of implicit argument names (from x. to x, from y. to y, and so on...). Anyways... The right answer here would probably be: check the release notes at some point. (As an aside, ... personally, I first learned J on a version which preceded version 7.) Thanks, -- Raul On Sun, May 15, 2022 at 10:22 AM <neit...@gaertner.de> wrote: > > Alexander Shendi asked: > > > > My question is: Can I use this implementation for learning J? > > I cannot agree with Raul this time. > > For learning any language, you need to have proper reference > documentation. I guess it would be very difficult these to get > a (legal) copy of the J Version 7 "Dictionary of J" these days. > > > Basically, what is the difference between J7 and "modern" J903? > > Obvious major differences: > > - no control structures (but the $. Suite instruction vector > instead) > - a few less primitives (e.g. {::, L:, p:, q:) > > These differences are the easy ones because they are immediatetly > noticed. You'll get a "spelling error", adjust your vocabulary, and > live moves on. > > The tricky changes are those where J was defined to operate differently, > but not always in obvious ways. For example, in both Jv7 and today's J: > > *: 0 1 2 3 > 0 1 4 9 > > <@*: 0 1 2 3 > > Today's result: > +-+-+-+-+ > |0|1|4|9| > +-+-+-+-+ > > But J Version 7: > +-------+ > |0 1 4 9| > +-------+ > > Any newbie would be bound to think: "OK, *: Square works the same, > but something about @ Atop or < Box changed." But that's not the > case. The change actually *is* with *: Square. > > It's simply not viable to take today's documentation, ignore "anything > not there yet" in the old version, and learn the language. It'll > be a very frustrating exercise because things WON'T work as exepcted. > > To get back to your question: > > > Basically, what is the difference between J7 and "modern" J903? > > The differences are all summarized in the "status.txt" file and, > for more recent releases, in the "release notes". Enter here: > > https://code.jsoftware.com/wiki/System/ReleaseNotes > > and work you way down towards the past (or at least J Version 7). > The changed behaviour described above is listed in there. But I have > my doubts that a newbie would be able to pin-point it. > > (Hidden exercise, if you have half an hour to spare.) > > Martin Neizel > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm