Sure: you rejected that approach because of what the resulting verb contained.
So, I changed my mind and went with this, instead. Thanks, -- Raul On Tue, Jul 25, 2017 at 6:09 PM, Jose Mario Quintana <[email protected]> wrote: > :D Now I am the one quite confused with your notion of "pure tacit verb" > based on transitivity. Why? Because, when I pointed out that the verb, > > '`u v' (1 : '(m)=:y') > > had an explicit appendage, your response was, > > if we claim that ('abc' is) is not a "pure tacit verb" > because it contains a non-tacit adverb, that logic would > suggest that +/ is not a pure tacit verb because it contains > an adverb. > > Would you mind to clarify your early claim, > > And yet, all of your verbs can be pure tacit. > For example, you could use > is=:1 :'(m)=:y' > > by providing a specific example of using your adverb is to produce a > "pure tacit verb" according to your notion based on transitivity? > > > On Mon, Jul 24, 2017 at 10:59 PM, Raul Miller <[email protected]> wrote: > >> Except, 'A' (1 : '(m)=: y') would not be an example of a either a pure >> tacit verb, especially when you consider (transitively) its components >> (which are not all verbs, and most certainly are not all pure tacit >> verbs). >> >> (Which, perhaps, is to suggest that once again I do not really know >> what you are thinking.) >> >> Thanks, >> >> -- >> Raul >> >> On Mon, Jul 24, 2017 at 7:03 PM, Jose Mario Quintana >> <[email protected]> wrote: >> > That makes sense; transitive pure (I hope you do not mind if I use that >> > term) tacit verbs seem to be an interesting notion. >> > >> > I think an argument can be made that transitive pure tacit verbs might >> not >> > be necessarily tacit verbs, for example, those produced by your adverb >> is : >> > >> > ( tptv=. 'A' is=. 1 : '(m)=: y' ) NB. A transitive pure tacit verb >> > 'A' (1 : '(m)=: y') >> > >> > To what word does the name y , in the linear representation of tptv >> (that >> > is, in the line above), refer? According to the Dictionary "an adverb >> may >> > refer to its left argument (using u) as well as to the arguments of the >> > resulting verb (x and y)." Therefore, the name y refers to the right >> > argument of the resulting verb, which is none other than the verb tptv . >> > The same justification can be made for arguments other than the 'A' >> value. >> > >> > Either way, while testing my adverb tp I was disappointed that >> sometimes >> > one has to name its argument; otherwise, one might get an error, >> > >> > % tp tp >> > |open quote >> > | (' (1 : 0) >> > (%) y >> > : >> > x (u ] (%)) y >> > )) y >> > | ^ >> > | A=.''1 :('('' (1 : 0) >> > (%) y >> > : >> > x (u ] (%)) y >> > )) y';':';'x (u ] ('' (1 : 0) >> > (%) y >> > : >> > x (u ] (%)) y >> > ))) y') >> > >> > I understand why the error occurs but I was wondering if there is a >> utility >> > adverb similar to fix (f.) for explicit constructions where the names >> that >> > occur in the definition of an explicit word (entity) are (recursively) >> > replaced by their referents. I am asking this question just out of >> > curiosity; I am aware that locales are used to try to avoid name >> collisions. >> > >> > >> > On Sat, Jul 22, 2017 at 10:34 PM, Raul Miller <[email protected]> >> wrote: >> > >> >> Actually, my thought was that if the presence of the explicit >> >> conjunction is transitive for verb structure, the presence of all >> >> non-verbs would similarly be transitive in the structure. This would >> >> mean that only trains composed of verbs could truly be pure. >> >> >> >> That said I do understand that that was not your thought. >> >> >> >> Thanks, >> >> >> >> -- >> >> Raul >> >> >> >> >> >> On Sat, Jul 22, 2017 at 10:22 PM, Jose Mario Quintana >> >> <[email protected]> wrote: >> >> > Unfortunately "that logic would suggest that +/ is not a pure tacit >> verb >> >> > because it contains an adverb" might work for your notion of "pure >> tacit >> >> > verb" but certainly does not work for the notion I had in mind when I >> >> wrote >> >> > "producing (pure) tacit verbs." I meant pure tacit in the sense of >> pure: >> >> > "not mixed with anything else" or "containing nothing that does not >> >> > properly belong" or "free of any contamination [no offense]." >> >> > >> >> > Who knows? Maybe your notion of a pure tacit verb could prevail and >> be >> >> > very convenient. For instance, if someone asks: >> >> > >> >> > How can I make the verb load tacit? >> >> > >> >> > One could answer: >> >> > >> >> > You can make the verb load a pure tacit verb easily using the tacit >> >> > purifier adverb, >> >> > >> >> > tp=. 1 : 0 NB. Beware of the line-wrapping... >> >> > A=. (''''' 1 : (''' , ] , ' y'' ; '':'' ;''x (u ] ' , ] , (') >> y'')')"_) >> >> > '(' , ((5!:5)<'u') , ')' >> >> > ". 'A=. ' , A >> >> > A f. >> >> > ) >> >> > >> >> > puretacitload=. load tp >> >> > >> >> > puretacitload'plot' >> >> > plot (1 + %:)^:(i.13) 0 >> >> > >> >> > You can can also make a tacit verb pure tacit, >> >> > >> >> > pure_rd=. %tp NB. Pure tacit reciprocal divide >> >> > >> >> > pure_rd 3 >> >> > 0.333333 >> >> > 2 pure_rd 3 >> >> > 0.666667 >> >> > >> >> > You can make pure_rd even more pure, and so on, >> >> > >> >> > pure_pure_rd=. pure_rd tp >> >> > pure_pure_rd 3 >> >> > 0.333333 >> >> > 2 pure_pure_rd 3 >> >> > 0.666667 >> >> > >> >> > The pure pure tacitness of pure_pure_rd can be appreciated in all its >> >> > splendor, >> >> > >> >> > pure_pure_rd >> >> > '' (1 : 0) >> >> > (pure_rd) y >> >> > : >> >> > x (u ] (pure_rd)) y >> >> > ) >> >> > >> >> > where >> >> > pure_rd >> >> > '' (1 : 0) >> >> > (%) y >> >> > : >> >> > x (u ] (%)) y >> >> > ) >> >> > >> >> > ;) >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > On Mon, Jul 17, 2017 at 7:12 PM, Raul Miller <[email protected]> >> >> wrote: >> >> > >> >> >> Given is=:1 :'(m)=:y' >> >> >> >> >> >> if we claim that ('abc' is) is not a "pure tacit verb" because it >> >> >> contains a non-tacit adverb, that logic would suggest that +/ is not >> a >> >> >> pure tacit verb because it contains an adverb. We can certainly say >> >> >> that +/ is a tacit verb, but it's not purely made of pure tacit >> >> >> verbs... >> >> >> >> >> >> --- >> >> >> >> >> >> As for the use of globals for arguments, pure tacitness seems even >> >> >> lower there, both because of the use of (globally) named arguments, >> >> >> and because of the introduction of a potential failure mode (where >> >> >> "unrelated" verb invocations can stomp on each other). >> >> >> >> >> >> Thanks, >> >> >> >> >> >> -- >> >> >> Raul >> >> >> >> >> >> >> >> >> >> >> >> On Mon, Jul 17, 2017 at 6:56 PM, Jose Mario Quintana >> >> >> <[email protected]> wrote: >> >> >> > Exactly, you might have the right to say, >> >> >> > >> >> >> > " >> >> >> > And yet, all of your verbs can be pure tacit. >> >> >> > >> >> >> > For example, you could use >> >> >> > >> >> >> > is=:1 :'(m)=:y' >> >> >> > " >> >> >> > >> >> >> > but the verb, >> >> >> > >> >> >> > I_am_a_pure_tacit_verb=: '`u v' is >> >> >> > >> >> >> > fails, >> >> >> > >> >> >> > I_am_a_pure_tacit_verb +/`*: >> >> >> > |domain error: I_am_a_pure_tacit_verb >> >> >> > | (m) =:y >> >> >> > >> >> >> > because "the biggest problem here is the use of globals for >> >> arguments." >> >> >> > How come? Because the verb has an explicit appendage, >> >> >> > >> >> >> > I_am_a_pure_tacit_verb >> >> >> > '`u v' (1 : '(m)=:y') >> >> >> > >> >> >> > Despite its relative complexity and potential performance issues , >> I >> >> >> rather >> >> >> > use (while employing an official J interpreter) a tacit verb such >> as, >> >> >> > >> >> >> > nrep=: ('3!:2 a.{~' ,&": a. i. 3!:1) NB. :) >> >> >> > is=: ".@:('(' , nrep@:[ , ')=: ' , nrep@:]) f. >> >> >> > >> >> >> > because, in contrast, it "... quacks and swims like a duck..." >> >> >> > >> >> >> > is >> >> >> > ".@:('(' , ('3!:2 a.{~' ,&": a. i. 3!:1)@:[ , ')=: ' , ('3!:2 a.{~' >> >> ,&": >> >> >> a. >> >> >> > i. 3!:1)@:]) >> >> >> > >> >> >> > '`u v' is +/`*: >> >> >> > ┌───────┬──┐ >> >> >> > │┌─┬───┐│*:│ >> >> >> > ││/│┌─┐││ │ >> >> >> > ││ ││+│││ │ >> >> >> > ││ │└─┘││ │ >> >> >> > │└─┴───┘│ │ >> >> >> > └───────┴──┘ >> >> >> > >> >> >> > u@:v f. >> >> >> > +/@:*: >> >> >> > >> >> >> > >> >> >> > >> >> >> > >> >> >> > On Sun, Jul 16, 2017 at 3:37 PM, Raul Miller < >> [email protected]> >> >> >> wrote: >> >> >> > >> >> >> >> Sure, and the biggest problem here is the use of globals for >> >> arguments. >> >> >> >> >> >> >> >> The verbs themselves can be pure, but all we're really doing is >> >> >> >> rearranging the deck chairs. >> >> >> >> >> >> >> >> Thanks, >> >> >> >> >> >> >> >> -- >> >> >> >> Raul >> >> >> >> >> >> >> >> >> >> >> >> On Sun, Jul 16, 2017 at 3:33 PM, Jose Mario Quintana >> >> >> >> <[email protected]> wrote: >> >> >> >> > At least we agree, I think, on one thing " in explicit >> programming >> >> >> >> > [typically] names refer to arguments while in tacit programming >> >> they >> >> >> do >> >> >> >> > not." Thus, is not just a matter of tacit aesthetics, there are >> >> some >> >> >> >> > consequences which might be difficult to evade: >> >> >> >> > >> >> >> >> > ('`u v') =: +/`*: >> >> >> >> > u@:v f. >> >> >> >> > +/@:*: >> >> >> >> > >> >> >> >> > ('`u v') =:: +/`*: NB. Jx >> >> >> >> > ┌───────┬──┐ >> >> >> >> > │┌─┬───┐│*:│ >> >> >> >> > ││/│┌─┐││ │ >> >> >> >> > ││ ││+│││ │ >> >> >> >> > ││ │└─┘││ │ >> >> >> >> > │└─┴───┘│ │ >> >> >> >> > └───────┴──┘ >> >> >> >> > u@:v f. >> >> >> >> > +/@:*: >> >> >> >> > >> >> >> >> > ('`u v') is +/`*: NB. >> >> >> >> > |domain error >> >> >> >> > | (m) =:y >> >> >> >> > is >> >> >> >> > 1 : '(m)=:y' >> >> >> >> > >> >> >> >> > So, assuming I understood the intended use of your adverb is, >> I am >> >> >> >> afraid >> >> >> >> > your adverb cannot be used without typical limitations. >> >> >> >> > >> >> >> >> > >> >> >> >> > >> >> >> >> > On Sun, Jul 16, 2017 at 1:59 PM, Raul Miller < >> >> [email protected]> >> >> >> >> wrote: >> >> >> >> > >> >> >> >> >> I think you are trying to evade a basic issue, which is that >> the >> >> >> >> >> distinction between tacit and explicit programming is that in >> >> >> explicit >> >> >> >> >> programming names refer to arguments while in tacit programming >> >> they >> >> >> >> >> do not. >> >> >> >> >> >> >> >> >> >> Altering the implementation to come up with evasive ways of >> having >> >> >> >> >> named arguments is what's stinky, from my point of view. >> >> >> >> >> >> >> >> >> >> Thanks though, >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> >> Raul >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Sun, Jul 16, 2017 at 12:13 PM, Jose Mario Quintana >> >> >> >> >> <[email protected]> wrote: >> >> >> >> >> > Nice try but when I am wearing my hard-core tacit programmer >> >> hat I >> >> >> do >> >> >> >> not >> >> >> >> >> > like to look at blatant ugly explicit definitions which are >> >> >> referring >> >> >> >> to >> >> >> >> >> > arguments. ;) Heck, I do not like the smell of verbs of this >> >> kind >> >> >> >> >> either, >> >> >> >> >> > >> >> >> >> >> > stinky=. ('''' , [ , '''' , a. {~ 38 40 52 32 58 39 40 120 >> 41 61 >> >> >> 58 32 >> >> >> >> >> 121 >> >> >> >> >> > 39 41"_) 128!:2 ] >> >> >> >> >> > >> >> >> >> >> > PS. Feel free to bring any argument suggesting that verbs >> >> involving >> >> >> >> side >> >> >> >> >> > effects are not tacit. >> >> >> >> >> > >> >> >> >> >> > >> >> >> >> >> > On Fri, Jul 14, 2017 at 6:46 PM, Raul Miller < >> >> >> [email protected]> >> >> >> >> >> wrote: >> >> >> >> >> > >> >> >> >> >> >> And yet, all of your verbs can be pure tacit. >> >> >> >> >> >> >> >> >> >> >> >> For example, you could use >> >> >> >> >> >> >> >> >> >> >> >> is=:1 :'(m)=:y' >> >> >> >> >> >> >> >> >> >> >> >> That said, there is an argument that side effects make a >> verb >> >> >> impure. >> >> >> >> >> But I >> >> >> >> >> >> am ignoring that kind of thing. >> >> >> >> >> >> >> >> >> >> >> >> Thanks, >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> >> >> Raul >> >> >> >> >> >> >> >> >> >> >> >> On Friday, July 14, 2017, Jose Mario Quintana < >> >> >> >> >> >> [email protected]> >> >> >> >> >> >> wrote: >> >> >> >> >> >> >> >> >> >> >> >> > That is a different matter. >> >> >> >> >> >> > >> >> >> >> >> >> > Indeed, "=: works and is simple" as long as one is not >> >> concerned >> >> >> >> about >> >> >> >> >> >> > producing (pure) tacit verbs. In that latter context, >> >> >> apparently, >> >> >> >> it >> >> >> >> >> >> does >> >> >> >> >> >> > not work well, is not simple to use and its forced use >> might >> >> >> >> trigger >> >> >> >> >> >> gross >> >> >> >> >> >> > space and time inefficiencies (for example, as discussed >> >> >> recently >> >> >> >> in >> >> >> >> >> the >> >> >> >> >> >> > "[Jprogramming] Side effects in tacit expressions" >> thread). >> >> >> >> >> >> > >> >> >> >> >> >> > Introducing new primitives is, in my view, a matter of >> >> >> perspective >> >> >> >> and >> >> >> >> >> >> > opportunity. I thought the verbs =.. and =:: had >> sufficient >> >> >> >> merits >> >> >> >> >> and >> >> >> >> >> >> I >> >> >> >> >> >> > had the means to include them in the version of the J >> >> >> interpreter >> >> >> >> >> that I >> >> >> >> >> >> > use almost all the time (Jx). I just thought this could >> be >> >> an >> >> >> >> >> >> opportunity >> >> >> >> >> >> > to make the official interpreter a little more tacit >> friendly >> >> >> for >> >> >> >> the >> >> >> >> >> >> > benefit of other tacit programming hard-core fans; that is >> >> all. >> >> >> >> >> >> > >> >> >> >> >> >> > In any case, there are other much more important >> unfortunate >> >> >> >> >> omissions, >> >> >> >> >> >> in >> >> >> >> >> >> > current official implementations, that drastically hinder >> >> tacit >> >> >> >> >> >> programming >> >> >> >> >> >> > (but that is yet another topic for another time). >> >> >> >> >> >> > >> >> >> >> >> >> > >> >> >> >> >> >> >> > ------------------------------------------------------------ >> >> ---------- >> >> >> > For information about J forums see http://www.jsoftware.com/forum >> >> s.htm >> >> >> ------------------------------------------------------------ >> ---------- >> >> >> For information about J forums see http://www.jsoftware.com/forum >> s.htm >> >> >> >> >> > ------------------------------------------------------------ >> ---------- >> >> > For information about J forums see http://www.jsoftware.com/forum >> s.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 >> > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
