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

Reply via email to