Ian wrote:
> If I input:
>
> foo=: +/
> fie=: foo&99"_
> fie f.
> foo=: i. 9
> fie f.
>> ...is [fie or foo] now a pronoun, whereas it was hitherto a proverb?
Certainly foo is now a pronoun. But that its definition has changed
shouldn't be surprising, as you've intentionally and explicitly redefined it
(if you think of your IJS like a page in a dictionary, where you used to
have "foo /v/, ...." and then you edited it to read "foo /n/, ...." you
wouldn't be surprised if people reading it came away thinking "foo" was a
noun, right?).
The nature of fie is a bit murkier. But first we must be clear that in
redefining foo, upon which word fie's definition depends, you've also
redefined fie (I expect this statement is uncontroversial but I wanted to be
sure). So the question isn't why fie's definition changed, but what it
changed to.
The answer is, I don't know. The reason I don't know is because m&n is not
defined in the DoJ. So fie's definition is similarly undefined. If m&n
were defined, then I'd say fie is whatever (i.9)&99"_ is.
That said, I'm not sure the interpreter would agree. For example,
foo =: 1:
fie =: foo + 99"_
fie f.
1: + 99"_
fie 0
100
foo =: 1 NB. Changed verb to noun
fie f.
|domain error
| fie f.
fie 0
|domain error: foo
| fie 0
Here, changing the class of a name upon which a definition depends just
confuses the interpreter; this is in contrast to simply changing its value,
which doesn't:
foo =: 2: NB. Change to a different verb
fie f.
2: + 99"_
fie 0
101
All that said, I see your motives for asking this question (teaching APLers
J, without going back to square one) are different from my normal MO
(understanding J from first principles), so I'm not this is the style of
answer that you're looking for.
I will say that when I was learning APL, knowing J was an immense jumpstart
(and a bit of a bias :).
-Dan
PS: I love reading your (Ian's) posts because they always teach me
interesting new English idioms.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm