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