I routinely "cheat" when building tacit phrases by taking a look at what "13 :" does: 13 : '(2$x)$(>:x){.y' (2 $ [) $ ] {.~ [: >: [ 3 ((2 $ [) $ ] {.~ [: >: [) 5 5 0 0 0 5 0 0 0 5 The "trick" I see it doing here is flipping "(>:x) {. y " to " ] {.~ [: >: ", i.e. reversing the arguments of "{." so the monadic use of ">:" is on the right, avoiding the parenthesization.
On Sun, Jun 30, 2019 at 12:41 AM Daniel Eklund <doekl...@gmail.com> wrote: > 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 > -- Devon McCormick, CFA Quantitative Consultant ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm