When you say 'see a noun on its left' - yes, but it doesn't have to be a
quoted string; it can be a defined name. So name~ might be evoke, if
name turns out to be a noun.
I think 'reflexive' refers to the linguistic use of the term rather than
having to do with reflection. Examples:
I hurt myself.
Je m'appelle Henri.
Ich erinnere mich nicht daran.
The noun appears in two places, as both the subject and object of the
verb. Just like verb~ y !
Henry Rich
On 3/30/2014 10:16 AM, Dan Bron wrote:
You can tell immediately whether ~ is performing passive, reflexive , or evoke.
Did you pass it a noun? Then it's evoke (this is very rare and very obvious:
remember, as an adverb, ~'s argument is fixed at runtime, so you'd literally
have to write or see a noun directly to the left of ~).
You didn't pass it a noun? Ok, by definition, you passed it a verb. So ~
consumed that verb and produced a new verb. Did you pass that new verb one
argument, or two arguments?
If you passed the new verb one argument (aka "invoked the monad") then ~ will act in its
reflexive capacity. If you passed the new verb two arguments (aka "invoked the monad")
then ~ will act in its passive capacity.
In other words, f~ ↔️ (] f ]) : (] f [) . That is, given a verb f, f~ will
produce an ambivalent verb which will always invoke the dyadic valence of f
(the monadic valence of f is thus ignored and therefore irrelevant). When f~ is
invoked, the left argument to f will always be the right argument of f~ .
Thus, the only difference between passive and reflexive is the right argument
to f, which will be the left argument of f~ if it has one (ie if f~ was invoked
dyadically) or the same old right argument as before if it doesn't (ie if f~
was invoked monadically and the only argument around to use is on the right).
So ~ is hardly a demon from hell, because you know what you're getting when you
invoke it. The incantations are simple and the consequences predictable.
-Dan
Ok, need a mnemonic?
'name'~ : evoke the name (call upon, summon up, conjure, recall)
verb~ y : reflect the argument (mirror, create a perfect image, clone, put a
mirror up so the verb sees two identical copies, etc)
x verb~ y : use the passive voice (switch the subject and object, invert the
sentence, etc):
Pascal invoked Astaroth
Astaroth was invoked by Pascal
[do not try this at home]
[1] "Why was ~ on a dyadic verb named "passive"?
http://www.jsoftware.com/pipermail/general/2007-May/030070.html
Sent from my iPhone
On Mar 30, 2014, at 8:31 AM, Pascal Jasmin <[email protected]> wrote:
} is an adverb.
~ is a demon from hell for errors in that it can do one of 3 things (passive,
reflex, evoke), and often its one of the other 2 than you intended. (here you
were assuming it would do passive). I'm not 100% positive which of the other 2
it actually gets parsed at here.
----- Original Message -----
From: EelVex <[email protected]>
To: Programming forum <[email protected]>
Cc:
Sent: Sunday, March 30, 2014 7:07:05 AM
Subject: [Jprogramming] Item amend ~: index error.
(0 1 2) } (i. 3 3)
0 4 8
(i. 3 3) }~ (0 1 2)
|index error
| (i.3 3)}~(0 1 2)
Why? What's the use of }~ when not used as 'amend'?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm