Bill, Thank you.
Your succinct definition of & operating on _verbs_ makes it clear. Although I was drawn to ampersand because my hard-coded was bonding a noun, I could not just use it with in a different context without understanding the difference. thanks again On Sun, Jun 30, 2019 at 12:06 AM bill lam <bbill....@gmail.com> wrote: > When & works for verbs. > x u&v y <=> (v x) u (v y) > for your case > 5 {.&] 3 <=> (] 5) {. (] 3) > 5 {.&[ 3 <=> ([ 5) {. ([ 3) > > but both MONAD [ and ] return its RIGHT argument. > so the &] or &[ is redundant and it is the same as > {. > > Something like, > > Myverb =: 2&#@:<:@:[ $ {. > Myverb2 =: 2&#@:<:@:] $ {.~ > > tl;dr sorry. > > Sat, 29 Jun 2019, Daniel Eklund написал(а): > > Hey all, > > > > I am posting a long email as I am hoping to understand from the > collective > > wisdom here. Apologies if this was somewhere in the archives but I have > > not been able to find it. > > > > I’m trying to understand the subtleties in binding conjunctions via tacit > > forks (or anything tacit). My fumbling has proved mildly > > counter-intuitive, and I’m hoping someone here can point me in the right > > direction and/or confirm my conclusions are directionally correct. > > > > Problem: I want to create a verb that allows be to create an identity > > matrix filled with a numeral (filled-noun) like: > > > > 1 Myverb 4 > > > > 1 0 0 0 > > > > 0 1 0 0 > > > > 0 0 1 0 > > > > 0 0 0 1 > > > > Or > > > > 2 Myverb 4 > > > > 2 0 0 0 > > > > 0 2 0 0 > > > > 0 0 2 0 > > > > 0 0 0 2 > > > > I know there are many ways to do this and the point of the task is purely > > for me to experiment with tacit composition. > > > > I found, quite easily I could do > > > > ({.&1) 5 > > > > 1 0 0 0 0 > > > > And therefore > > > > 4 4 $ ({.&1) 5 > > > > 1 0 0 0 > > > > 0 1 0 0 > > > > 0 0 1 0 > > > > 0 0 0 1 > > > > Which leads me to > > > > (2&#@:<: $ {.&1) 5 > > > > 1 0 0 0 > > > > 0 1 0 0 > > > > 0 0 1 0 > > > > 0 0 0 1 > > > > Using a monadic fork. > > > > But now I want to pass the bound noun to Take ( {. ) so that it’s not > just > > hard-coded as a ‘1’ and thus need a dyadic fork. > > > > I stumbled into something that works but left me with questions (notice I > > had to switch sides for dimension and the filler-noun): > > > > Myverb =: 2&#@:<:@:[ $ {.&] > > > > > > > > 5 Myverb 3 NB. The 5 is the shape of the square, and > > > > NB. the ‘3’ is the filler (the opposite of > what > > I wanted originally) > > > > 3 0 0 0 > > > > 0 3 0 0 > > > > 0 0 3 0 > > > > 0 0 0 3 > > > > The right-verb in the fork seems to be where I had a problem truly > > understanding. Given that the above works, I thought that swapping the > > SameLeft verb and the SameRight verb _should_ give me the following that > > works > > > > Myverb =: 2&#@:<:@:[ $ {.&] > > > > Myverb2 =: 2&#@:<:@:] $ {.&[ NB. Just swapping the ‘]’ and > > the ‘[‘ > > > > But it gives me weird results. > > > > 3 Myverb2 5 > > > > 5 0 0 5 > > > > 0 0 5 0 > > > > 0 5 0 0 > > > > 5 0 0 5 > > > > I think I was able to figure it out by realizing that in the phrase > > > > {.&[ > > > > The ‘leftness’ of the SameLeft verb binds overrides the syntactic > > suggestion that the input will be bound to the right, and thus > > > > 3 {.&[ 5 > > > > 5 0 0 > > > > Gets reshaped into the matrix I did not want. Given that, I can finally > do: > > > > Myverb3 =: 2&#@:<:@:] $ {.~&[ > > > > _1 Myverb3 5 > > > > _1 0 0 0 > > > > 0 _1 0 0 > > > > 0 0 _1 0 > > > > 0 0 0 _1 > > > > By commuting the right verb in the fork. > > > > As I was concentrating just on the conjunction I got the following > results, > > and think I understand, but would appreciate confirmation, a pat on the > > back, or further readings: > > > > ({.&[) 5 NB. Experiment (A) > > > > 5 > > > > ({.&]) 5 NB. Experiment (B) > > > > 5 > > > > 3 ({.&]) 5 NB. Experiment (C) > > > > 5 0 0 > > > > 3 ({.&[) 5 NB. Experiment (D) > > > > 5 0 0 > > > > 5 ({.&) NB. Experiment (E) > > > > {.&5 > > > > ({.&) 5 NB. Experiment (F) > > > > |syntax error > > > > 5 (&{.) NB. Experiment (G) > > > > 5&{. > > > > (&{.) 5 NB. Experiment (H) > > > > |syntax error > > > > > > Summary: > > > > In experiment (A) the monadic application turns the SameLeft into Same > > which feeds its results (via compose) to Head and resolves to {. 5 and > > thus 5. > > > > In experiment (B) the same thing occurs except it is SameRight into Same. > > > > In experiment ( C) with a dyadic invocation, the SameRight’s ‘rightness’ > > binds the 5 to the right side, and 3 is fed as the left argument to as > it > > should. > > > > In experiment (D) with a dyadic invocation, the SameLeft’s ‘leftness’ > binds > > the 3 to the left side of the argument (despite it looking like it is > bound > > on the right -- it is helpful now to understand ampersand as ‘compose’ > and > > not ‘bind) and the results are the same as experiment (C ). > > > > In experiment (E) the conjuctive fragment (no SameRight or SameLeft) has > > become an _adverb_ and thus seeks to the bind to the left -- and > produces a > > verb with a noun bound to the right. NB. I was really confused when I > saw > > that this parsed. > > > > In experiment (F) I proved to myself that the fragment without the > > SameRight or SameLeft was just a naked adverb because I got a syntactic > > error as an adverb resolves to the left. > > > > In experiment (G) I moved the ampersand around on the fragment and saw > that > > now the ampersand was ‘respecting’ the direction of binding (binding on > the > > left instead of the right as in experiment (E)). This also continued the > > evidence that the fragment was an adverb. > > > > Experiment (H) cemented my belief that either fragment (&{.) or ({.&) > are > > induced adverbs. > > > > Anyways, thank you for reading and I hope for some feedback. In all of > the > > above, I think experiment D crystalizes the source of my initial (and > > long-lasting) confusion, hopefully now resolved. > > > > Thank you > > > > Daniel Eklund > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm