First of all, I agree with Raul's idea of an Essay approach and/or perhaps a Lab or a video. This conversation's applications and scripts are very complicated and valuable.
I am really impressed with the power of fgh.ijs . For example the letters i,f,g and h are interchangeable placeholders and many powerful examples of trains and / and & modifiers are beautifully clarified showing the arguments in their positions in the results. The user needs to be told that the results use the _ character to show the valence of verbs, but that the verb pronouns must exclude the _ characters to actually work. (Although an example of the &. modifier is suggested in the fgh.ijs script, I got domain errors for it.) I am similarly impressed with tte which can be used with trains and / and & modifiers and in contrast to fgh.ijs tte employs primitive and named verbs. But no actual arguments are involved in the output. Consider the following in 2 examples. ( */ &. +) tte NB. &. is not really demonstrated 3 : 0 NB. */&.+ ] t0=: */&.+ y NB. main: h-: '&.' : ] t0=: x */&.+ y NB. main: h-: '&.' ) ( */ & +) tte NB. is there an error in dyad? 3 : 0 NB. */&+ ] u0=: */ ] v0=: + ] r0=: <@v0 y ] q0=: u0@> r0 NB. atop: */&+ : ] u0=: */ ] v0=: + ] r0=: <@v0 x ] q0=: <@v0 y ] p0=: r0 u0@> q0 NB. compose: */&+ NB. is this an error? ] p0=: r0 u0&> q0 NB. compose: */&+ NB. does this correct? ) dissect is mind blowingly versatile and especially helps with getting argument rank to coincide with verb ranks. 13|: and trace have been my goto debug devices, but the others mentioned above are really helpful, too. In exploring the ideas of this thread I was somewhat disillusioned by the following example of trace because it seems to reverse the order of Paren and Trident and hides the details of the Trident (fork) inside the processing of Dyad so there is not much help with trains. trace '2(+ * -) 3' --------------- 5 Trident ---- + * - + * - --------------- 8 Paren ------ ( + * - ) + * - --------------- 2 Dyad ------- 2 + * - 3 _5 ============================== _5 On Tue, Oct 25, 2022 at 10:54 AM Raul Miller <rauldmil...@gmail.com> wrote: > Actually, thinking about this, a series of related essays might be useful. > > I'm not quite sure how they should be labeled. But using J to build > expression-like results to illustrate concepts seems like a general > and illustrative technique for beginners. (Though of course it's also > useful for addons, like the math/calculus package.) > > Thanks, > > -- > Raul > -- (B=) ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm