The J wiki is also a great resource. However, there is a known problem with learning J: we often use an idiosyncratic vocabulary. This means that looking up something on the wiki may return no hits even though there is relevant material there but we just call it something different.
One way we're attempting to address this is by requesting that people add to the "#pragma keywords" line at the start of a relevant wiki page, once you've found it by other means, so that the search term that first occurred to you will lead the next person to the right place. Another weakness is that though the examples given tell you exactly how something works, we often lack hints about why you would want to do that. This is something we hope to address as a community by adding to the wiki. For instance, there's a nice discussion of "Gray codes" but little insight there about what you would use them for; I've been meaning to add something about how they were useful for me to traverse adjacent, e.g. quadrants in 2-space, but this idea extends to n-space. I, too, would recommend learning the language as given, though I can see how using a keyword like "each" is easier to grok than something like "&.>" - it may be easier to read too (there's an obscure "dot" in the middle of the J expression there). Do whatever you find easier. Many of us had the advantage of knowing APL first, which helped me initially but later hindered me from truly grasping some of the deep, powerful relations between different J constructs. Keywords probably have the same advantage and disadvantage. Good luck, Devon On 3/31/08, Tracy Harms <[EMAIL PROTECTED]> wrote: > > Mattia Landoni , > > I want to amplify Bill Lam's suggestion that you put special attention to > Henry Rich's J Reference Card and the main Vocabulary listing. Both are > extremely valuable; anybody who intends to learn J might as well start > getting familiar with them immediately. > > I've spent a good deal of time browsing and drilling from the J Reference > Card. What makes it so valuable is the way it is composed of tiny "virtual" > J-session examples. By seeing sample input and output along with an > associated name for what is going on, you are introduced to (or remineded > of) what is going on in each case. The transformations shown on that card > are the main building blocks of the language. Writing J is very much a > matter of thinking in terms of the primaries. > > My main additional advice is to read widely and immersively. Keep reading > basic material past the point where it's all too familiar, and keep poking > at material that is beyond your ability to make sense of. Over time a shift > will occur in the range of J code you can just barely understand. > > Also, be prepared to persevere despite not learning J so fast as you may > have imagined. > > >From what you've written I'm guessing that you're set to learn J more > easily than many programmers. Familiarity and comfort with mathematics is > enormously helpful because so many of the best demonstrations of J are > mathematical. Indeed, my nomination for the single most important thing to > appreciate about the language is this: J is a mathematical notation that > happens to be executable on computers. > > > -- > Tracy B. Harms > > A good programming language is a conceptual universe > for thinking about programming. > Alan > Perlis > > > > > > ____________________________________________________________________________________ > No Cost - Get a month of Blockbuster Total Access now. Sweet deal for > Yahoo! users and friends. > http://tc.deals.yahoo.com/tc/blockbuster/text1.com > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Devon McCormick, CFA ^me^ at acm. org is my preferred e-mail ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
