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

Reply via email to