-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Terrence Brannon" <[EMAIL PROTECTED]> writes:

> all the prior examples in this section were based on operands of
> rank-2. This rank-1 example can be tricky to a beginner because the
> items of a 1-cell are not arrays, but atoms. 

...or rank 0 arrays, right?

I applaud your tenacity in understanding the logical foundations of J.
Those foundations are important, your questioning has (I think) sparked
some very insightful reflection and commentary here that should be
helpful to many, and you'll probably be better at J for it.

That said, I've noticed something about J that might be worth
mentioning, just in case it helps.  

I think J's use of natural language grammatical terms (noun, verb, etc.)
is deeper than just selecting user-friendly synonyms.  I think it speaks
to an effective way of learning and using J.  I think it speaks to the
way people find J a way of thinking rather than a programming language.

I think learning J effectively is similar to learning a foreign language
effectively.  Yes, it helps to learn the grammar, but (as Ken or Chris
or someone wrote in one of the J books) a good (the best?) way to learn
a language is to practice in the presence of a laconic speaker that lets
you do most of the talking but who does give you examples and feedback.
That is, try the labs (listen), type something into J (speak to the
interpreter), and see what you get.  When you don't get what you want,
listen some more, and try again (obviously having changed something).

That's not to say you shouldn't learn the grammar.  In a foreign
language, grammatical knowledge can help one communicate new ideas in
new ways with clarity and finesse.  We don't learn grammar first,
though, at least with our first language; we imitate what we hear others
say and try to make ourselves understood.

I learned German in high school and college and did pretty well, so I
thought.  Then, when I lived and worked in Germany (and totally in
German), I discovered that what really counted was to be able to think
in German.  That didn't depend much on my understanding of grammar; it
depended mostly on my frequent and rapid interaction with Germans (and
Austrians and Swiss ...).  I'd pick up phrases that sounded natural and
insert them into my own sentences I spoke.  Grammar was mostly useful if
I had to analyze what I had said or if I wanted to put those words
together in a different way, and it might have been surprising to me how
little I had to worry about that had I not been so busy with learning
the language rather than learning the grammar.  (If you think you can't
write some of the long tacit J sentences you see here rapidly [and I
can't, at least to the degree I wish I could], think of those who speak
or understand long, complex German sentences having most of the verb
stuck at the end of the sentence with little problem -- or the Germans
who get used to strange English sentences with much fewer of the
grammatical nuances they use to guide their comprehension.  I'm sure the
same is true with many other language pairs.)

For an example in another field, see the Koch method of learning Morse
code (http://www.hfradio.org/koch_1.html).

I realize that goes against the grain of the way we learn to program.
I'm not asking you to be quiet here; I think we're learning a lot from
your questions and answers.  So, from a selfish reason, keep it up.  I
think some of the conversation about rank has been quite helpful for
many of us.

I do realize your learning style may be such that you really do need to
approach it this way.  Henry's may be, too; his J for C Programmers is
great, it's light-hearted but deep in content, and it also seems
different somehow than some of the other books Ken and others wrote.
I'm glad you wrote it, Henry, for we all learn differently, and you
explained some concepts in ways many of us find easier to grasp quickly.

I'm just cautioning you to think about your goal.  If it's to use J as a
highly productive way to think about and work with mathematical things
(and I'm by no means limiting the domain of J when I say "mathematical
things"; J has taught me how much of what others might see as pushing
symbols around is really mathematical in nature), then think seriously
about the immersion approach to learning a foreign language and the Koch
approach to learning Morse code as you think about learning J.

Does that help?  I'm curious in your thoughts as you read this and
integrate it with what you're experiencing.

Bill
- -- 
Bill Harris                      http://facilitatedsystems.com/weblog/
Facilitated Systems                              Everett, WA 98208 USA
http://facilitatedsystems.com/                  phone: +1 425 337-5541
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32)
Comment: For more information, see http://www.gnupg.org

iD8DBQFGE9Hu3J3HaQTDvd8RArStAJ9Ysmjtx7OihQP+IlnMaq+KHBGZ9QCcCN7g
6MwTnBjBvn8Xe91YnCq/Ze4=
=ac+h
-----END PGP SIGNATURE-----

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to