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/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
