Kip wrote:
> Dan, thank you for your discussion,
Of course! Though I think I was having a discussion more with myself than
anyone else. I was trying to express an idea that hasn't gelled in my
head yet. Sorry about that.
So, if it helps, it might be easier to remember that nouns always
immediately express their value. There are no latent nouns. So, when you
defined r , the noun d expressed its (then current) value, which r
dutifully picked up and compiled in.
"Nouns immediately express their value" is true, and an easier rule to
apply than "tacit verbs are immutable" (which is a rule I didn't express
correctly, because I'm not quite sure what I'm trying to say yet).
I also want to correct a couple errors in my post:
> r =: 3 : 'd' : ([ {~ #...@[ | ])
Oops, typo. I meant r =: 3 : 'd r y' : ([ {~ #...@[ | ]) . We could also
write r =: 3 : 'd' ([ {~ #...@[ | ]) ] which I think I'd prefer. Or, so
long as we understand its nature, we can return to the original idea with
r =: ". bind 'd' ([ {~ #...@[ | ]) ] .
> The one exception would be memory-mapping d
> [...] basically a cheat
"Lie" is a better term for it. We're lying about d . We're making it do
the work of an argument while trying to withold that status.
-Dan
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm