From Anger at MITVMA.MIT.EDU Wed Jun 27 09:25:54 2007 From: Anger at MITVMA.MIT.EDU (Art Anger) Date: Wed, 27 Jun 2007 09:25:54 EDT Subject: [J-learn] Taking the Plunge! (Repeat?) Message-ID: <070627.093352400564.EDT.Anger@mitvma.mit.edu> Friends-- I thought that I had sent this message out on Sunday evening, but it doesn't show in the record. We now have 8 interested subscribers, although some expect to have limited time to devote to this study; I have yet to hear from a few invitees. --Art ------------- I. Taking the Plunge! ALA 2007/06/24 If you haven't yet visited http://www.jsoftware.com you should do so, to Download the Stable version of J (6.01) for your particular operating system. You may install (unpack) the J system to any folder you choose; I prefer to put it in Program Files. Starting J gives an execution window (1.ijx) into which you may enter any J sentence you see in our messages to test its result for yourself, and/or to modify for different results. The J language embodies a broad palette of arithmetic, higher mathematical, logical, and data-structuring tools in a compact form, encompassing much which would be in separate subroutine libraries in other systems. It may be thought of as "a big ball of wax", "a prickly cactus, porcupine, or hedgehog", "an endless labyrinth or cavern", or "faaaar out!". No one person has to know all of it; learn the parts you need, or which interest you at any particular time, and come back later for additional parts. Because your needs and interests probably differ from those of some others in our group, I can't recommend a single route to learning what you may wish to know. A "labyrinth" of documentation is listed under the Help menu in the J-execution window, and also in abbreviated form at the top and bottom of every(!) browser page that it links to. One of your primary tasks in the first days or weeks of study will be to view a few early pages in each of the documents listed to see which one seems most congenial to you--and to learn how to find individual sections in each by topic name or by reference from the Index (Ndx) when your study of one topic seems to require some understanding of another one. If you're just learning about programming: you'll probably find the Primer (Pri) to progress at a suitable speed; Learning J (LJ) is fairly similar, with a slightly different style of presentation. For more substantial exercises, any of the first five Labs (reached from the Studio menu above the execution window) may be appropriate; you will have to discover which ones seem to suit you best. If you already know some algebraic programming language: you may prefer the J for C Programmers (JfC) presentation, which goes faster than the previous two, and a lot farther into advanced language features and system interfaces. You could also be exploring which Labs may later lead you into an area you would like to study. If you have been exposed to the APL language: you should also be able to profit from early perusal of http://www.jsoftware.com/jwiki/Doc/J4APL . Whatever your experience: you should find a screen-window arrangement that allows you to switch conveniently between J and two browser windows (or tabs), so that you can examine Vocabulary definitions and execute experimentally in alternation with progressing through a text. You may even want two dictionary windows accessible since, as with an English dictionary, you may need to consult some auxiliary definition when trying to make sense of one of interest. In your spare "spare" time: look for the few games in the Demo section. If one of them intrigues you, one goal in learning J could be to try to understand enough about the programs which run the game to be able to modify parts of its appearance or rules. (First, save a copy of the original script under a similar, different name.) A good set of goals for your first stage of acquaintance might be: --Starting up J. --Adding 2 to 2 ; Multiplying 2 by 2 ; even Doubling, Squaring, or Incrementing 2 . --Adding 2 to 2 3 4 . --Adding 1 3 5 to 7 5 3 . --Extra credit: Summing 1 3 5 . (Uses Insert.) Try it out! Do ask questions--there are lots of points of possible confusion.