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

Reply via email to