the removing y part -semi tacit 2 : 'u@:v v ]'
I don't think there is a "modifier train" expression that would be full tacit. On Thursday, April 21, 2022, 01:42:48 a.m. EDT, Michal Wallace <michal.wall...@gmail.com> wrote: I want to write this tacitly: AA =: {{ (u v y) v y }} For context, I tend to use it to *A*pply monad u *A*t at a location specified by ambivalent verb v. AT =: {{ m&{:: : (<@[ m} ]) }} 3 AT ;/i.10 3 _ (3 AT) ;/i.10 +-+-+-+-+-+-+-+-+-+-+ |0|1|2|_|4|5|6|7|8|9| +-+-+-+-+-+-+-+-+-+-+ _: AA (3 AT) ;/i.10 +-+-+-+-+-+-+-+-+-+-+ |0|1|2|_|4|5|6|7|8|9| +-+-+-+-+-+-+-+-+-+-+ My main question is "how do I write AA tacitly?", but I'd also like to present my (incorrect) thinking here in hopes that someone can fix it. :) I first translated it into a fork inside a direct definition, and that works fine: AA =: {{ ((u @: v) v ]) }} _: AA (3 AT) ;/i.10 +-+-+-+-+-+-+-+-+-+-+ |0|1|2|_|4|5|6|7|8|9| +-+-+-+-+-+-+-+-+-+-+ I then thought that replacing u => [. and v => ]. would let me remove the double curlies, but clearly this is the wrong idea: AA =: ([. @: ].) ]. ] _: AA (3 AT) ;/i.10 +-+-+-+-+-+-+-+-+-+-+ |0|1|2|3|4|5|6|7|8|9| +-+-+-+-+-+-+-+-+-+-+ I don't really understand what it's doing but I'm (mistakingly?) imagining that it's a fork. If it were a fork with ] on the right, I think I should be able to rewrite it like so: AA =: ].~ ([. @: ]) But this gives a syntax error.... Why? So okay, if I just put ] back in on the left: AA =: ] ].~ ([. @: ].) _: AA (3 AT) ;/i.10 _ Clearly my idea that [. and ]. mean "tacit u and v" is wrong. Can anyone help me correct my thinking? Thanks! -Michal ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm