Hi Don,
Thanks for your comments.
You said:
"What does confuse me is your insistence that tacit programming
> in its full blown glory needs to be taught at the beginning. It just
> complicates things unnecessarily."
I was trying to break the progression from tacit J to explicit
definition
into 4 incrementally separate forms.
(I apologize for the names - I am sure someone else could come
up with much better names):
1) Tacit J
2) Tacit Arithmetic - the same as tacit J except the grammar is right to
left.
3) Serial Arithmetic - like tacit arithmetic, except that it uses local
parameters and successive lines.
4) Arithmetic J as used in Interactive programming.
By going to tacit arithmetic first, I was not using the full blown
glory of tacit J - I was trying to stay away from the fork/hook grammar -
this way I get to full blown tacit J a lot more slowly than current
J documentation does.
However, where I think you are right is that the serial arithmetic
should be explained before the tacit arithmetic. It just seemed easier to
explain the whole thing to J experts the other way round.
You said:
"When I first started with J I struggled. I was completely baffled by tacit
> programming, but more important, having known APL, I was confused by
> differences from APL, like the way \ works in J. As far as tacit
> programming, I'm still learning. But to me it's a challenge. But I never
> saw
> these obstacles as something wrong with J."
I want to emphasize that I am not suggesting that tacit J go - only that
some intermediate stages be added to make each new feature incremental. It
is explicit J that is the problem. It is inconsistent with both tacit J and
interactive J, it is ugly, it uses unmatched parentheses - a sin that
interactive J won't accept - it puts code in quotes and it uses "x" and "y"
to bring in arguments. I am trying to integrate the lot into one consistent
and incrementally separate language rather than the three disconnected
worlds that currently exist.
Don
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm