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

Reply via email to