May I suggest,

explicit=. [: ( (256;a.i.,':') -: [: a.&i.&.> 2 {. 5!:2) <

and

tacit=.  -. @: explicit f.

Some testing follows,

Some testing follows,


   explicit'explicit'

0

   explicit 'weeksinyear'

1

   explicit 'toJ'

0

   test=. 4 : 'x i. y' " 0

   explicit'test'

0

   test=. 4 : 'x i. y'f.

   explicit'test'

1


Some might find some results not intuitive (I do not), using Raul's example,


   test=. (;:'weeksinyear')`:6

   explicit'test'

0

   test

weeksinyear


   test=. (;:'weeksinyear')`:6 f.

   explicit'test'

1


My only objection, so far, is academic,


   test=. 3 : '0'  NB. There is no reference to any argument

   explicit'test'

1


Yet, using explicit definitions without referring to any arguments is...
Pointless?






On Sun, Jan 22, 2017 at 11:25 PM, Louis de Forcrand <[email protected]>
wrote:

> This gave me an idea:
>
> a=: 3 : 'a f. y'
> a 0
>
> b=: 1 : 'x b'
> ]b
>
> These crash J (on iphone, which is kind of old) and actually don't send it
> into an infinite recursion or signal stack error. I'll try them on J805
> tomorrow.
>
> I guess I'll give my opinion as well:
>
> explicit=: (256;a.i.,':') -: [: a.&i.&.> 2 {. 5!:2
>
> Louis
>
> > On 23 Jan 2017, at 04:12, Jose Mario Quintana <
> [email protected]> wrote:
> >
> > How about  it=: '4 : 'x i. y' f.  which is produced by f. not  : ?  Does
> > that make it tacit?  Does it have a private namespace?
> >
> >> On Sunday, January 22, 2017, Henry Rich <[email protected]> wrote:
> >>
> >> enigma =: 4 : 'x i. y'"1
> >>
> >> Does enigma have a private namespace?  I say no.  The unnamed derived
> verb
> >> has a private namespace, but enigma itself does not, as would be
> elucidated
> >> by a longer example that did an assignment outside the derived verb
> (using
> >> ".).
> >>
> >> The only time this distinction has ever mattered to me was when looking
> at
> >> debug stack frames.  Explicit definitions can have stops engaged, etc.
> >> enigma cannot.
> >>
> >> [During 8.04 I added to the debugger to make it look like you can put
> >> stops into enigma, but you are actually working on the derived verb,
> which
> >> is given a system-generated name.]
> >>
> >> Henry Rich
> >>
> >>> On 1/22/2017 8:46 PM, Jose Mario Quintana wrote:
> >>>
> >>> Alright, it seems you meant just the explicit definition form for
> adverb,
> >>> conjunction and verbs; that is, n : m  at least for n = 1, 2, 3, and 4
> (I
> >>> am not sure if you include n=13 or not).
> >>>
> >>> Your comment about the main difference between explicit and tacit
> entities
> >>> leads me to believe that our views might not be too far apart, or at
> least
> >>> we have some common ground for discussion.  Having a private namespace
> is
> >>> an intrinsic property of an entity and I (currently) make a distinction
> >>> between a production process and its product (e.g.,  the product of 13
> :
> >>> 'x
> >>> + y'  is, the explicitly defined, tacit verb  + ).
> >>>
> >>> What I find odd is your assertion that, say,  3 : 'x + y' " 0 is tacit.
> >>> Why?  Because, for the same reason you stated, presumably  the verb
> >>> (produced by),
> >>>
> >>>    3 : 'x + y' (" 0)
> >>> 3 : 'x + y'"0
> >>>
> >>> would also be tacit, as well as the verb,
> >>>
> >>>    3 : 'x + y' f.
> >>> 3 : 'x + y'
> >>>
> >>> However, this last verb certainly has its very own private namespace
> and
> >>> it
> >>> looks quite explicit to me.
> >>>
> >>> Where did I go wrong?
> >>>
> >>> By the way, from my vantange point certain tacit verbs , for instance
> 3 :
> >>> '0' ,  can have their own private (albeit pretty useless) namespace.
> >>>
> >>>
> >>> On Saturday, January 21, 2017, Henry Rich <[email protected]>
> wrote:
> >>>
> >>> No, of course I meant 1 : y etc.
> >>>>
> >>>> The main difference between explicit and tacit entities is that
> explicit
> >>>> entities have a private namespace.
> >>>>
> >>>> Henry Rich
> >>>>
> >>>> On 1/21/2017 6:16 PM, Jose Mario Quintana wrote:
> >>>>
> >>>> However, if the tacitness of a verb would really depend on the
> process by
> >>>>> which it is produced (the notion that was being entertained), as
> >>>>> oppossed
> >>>>> to an intrinsic property of the verb, then there would be no much
> point
> >>>>> in
> >>>>> talking about a difference in performance (tacit vs explicit)
> because,
> >>>>> if
> >>>>> I
> >>>>> am not mistaken, for every explicit verb there woul be a tacit verb
> with
> >>>>> identical performance and viceversa.
> >>>>>
> >>>>> By the way, according to that notion, the verb  - : +  would be
> >>>>> explicit...  Really?
> >>>>>
> >>>>>
> >>>>> On Saturday, January 21, 2017, Devon McCormick <[email protected]>
> >>>>> wrote:
> >>>>>
> >>>>> I agree with Don's assertion "...the difference in performance is not
> >>>>> that
> >>>>>
> >>>>>> large compared to other considerations
> >>>>>> ​."​
> >>>>>> ​Personally, I find tacit more difficult to read than explicit, not
> the
> >>>>>> least because the names I choose for temporary variables in explicit
> >>>>>> code
> >>>>>> provide some documentation about my intent.
> >>>>>>
> >>>>>> I'll use tacit for short, simple phrases, like
> >>>>>>
> >>>>>>     (]}.~[:>:]i:[)"(0 1)  NB. Everything in y after last x
> >>>>>> NB.EG     'someFile.htm' -: '/' (]}.~[:>:]i:[) '
> >>>>>> https://some.site.domain/Folder/someFile.htm'
> >>>>>>
> >>>>>> because I can figure them out easily but anything much longer than
> this
> >>>>>> becomes an impediment to reading, in my experience.
> >>>>>> ​
> >>>>>>
> >>>>>>
> >>>>>> On Sat, Jan 21, 2017 at 11:47 AM, Louis de Forcrand <
> [email protected]
> >>>>>> <javascript:;>>
> >>>>>> wrote:
> >>>>>>
> >>>>>> On the topic of f., one must be careful when using f. on a recursive
> >>>>>> verb
> >>>>>>
> >>>>>>> (or one that uses another recursive verb).
> >>>>>>>
> >>>>>>> Louis
> >>>>>>>
> >>>>>>> On 21 Jan 2017, at 16:22, Don Guinn <[email protected]
> >>>>>>> <javascript:;>>
> >>>>>>> wrote:
> >>>>>>> When does it matter whether a statement is tacit or explicit or a
> >>>>>>> mixture
> >>>>>>> of both? Not normally as the difference in performance is not that
> >>>>>>> large
> >>>>>>> compared to other considerations. What does matter is when an
> >>>>>>> expression
> >>>>>>> is
> >>>>>>>
> >>>>>>> executed. If all the tokens in an expression are known it runs.
> That
> >>>>>>>> is
> >>>>>>>> true for both tacit and explicit expressions. So often tacit
> >>>>>>>>
> >>>>>>>> expressions
> >>>>>>> are executed when encountered in a script, much like like
> >>>>>>> preprocessing
> >>>>>>> in
> >>>>>>>
> >>>>>>> C.
> >>>>>>>> When the results of a tacit expression are assigned to a name it
> has
> >>>>>>>> executed. The results of the execution is defining a name.
> >>>>>>>>
> >>>>>>>> One interesting aspect of this is that interrupt handlers are
> >>>>>>>> explicit
> >>>>>>>> definitions so there is an unknown token - the argument y.
> >>>>>>>>
> >>>>>>>> On Sat, Jan 21, 2017 at 6:05 AM, Jose Mario Quintana <
> >>>>>>>> [email protected] <javascript:;>> wrote:
> >>>>>>>>
> >>>>>>>> Furthermore, if I show the verb,
> >>>>>>>>
> >>>>>>>>>   wiy
> >>>>>>>>> 3 : '52+ +./"1 [ 4=weekday(1 1,:12 31),"0 1/~ y'
> >>>>>>>>>
> >>>>>>>>> there is no way to know if is tacit or not because I could have
> >>>>>>>>> done,
> >>>>>>>>>
> >>>>>>>>> wiy=. 3 : '52+ +./"1 [ 4=weekday(1 1,:12 31),"0 1/~ y'
> >>>>>>>>>
> >>>>>>>>> or,
> >>>>>>>>>
> >>>>>>>>> wiy=. 'weeksinyear' f.
> >>>>>>>>>
> >>>>>>>>> Really?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Saturday, January 21, 2017, Raul Miller <
> [email protected]
> >>>>>>>>> <javascript:;>>
> >>>>>>>> wrote:
> >>>>>>>
> >>>>>>> Speaking of pedantic, (;:'weeksinyear')`:6 is presumably
> explicit...
> >>>>>>>>
> >>>>>>>>> Thanks,
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Raul
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Fri, Jan 20, 2017 at 11:44 PM, Henry Rich <
> [email protected]
> >>>>>>>>>>
> >>>>>>>>>> <javascript:;>
> >>>>>>>> <javascript:;>> wrote:
> >>>>>>>
> >>>>>>>> Explicit entities are created by the (:) conjunction.  Anything
> else
> >>>>>>>>>> is
> >>>>>>>>> tacit.
> >>>>>>>>
> >>>>>>>>> The distinction is notional.  We all have little bits of tacit
> code
> >>>>>>>>>>>
> >>>>>>>>>>> in
> >>>>>>>>> our
> >>>>>>>
> >>>>>>>> J lines:
> >>>>>>>>>>>
> >>>>>>>>>>> maxindex =: (i. >./) array
> >>>>>>>>>>>
> >>>>>>>>>>> the (i. >./) is a tiny tacit verb.  If you gave it a name it
> would
> >>>>>>>>>>>
> >>>>>>>>>>> become
> >>>>>>>>>> a named tacit verb.
> >>>>>>>>>>
> >>>>>>>>>>> Sometimes the distinction seems pedantic:
> >>>>>>>>>>>
> >>>>>>>>>>> qverb =: 3 : 0"0
> >>>>>>>>>>> ...
> >>>>>>>>>>> )
> >>>>>>>>>>>
> >>>>>>>>>>> Is qverb tacit or explicit?
> >>>>>>>>>>>
> >>>>>>>>>>> Answer: tacit.  It is not created by (:).  It is created by
> (").
> >>>>>>>>>>>
> >>>>>>>>>>> Henry Rich
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>> On 1/20/2017 9:39 PM, William Szuch wrote:
> >>>>>>>>>>>>
> >>>>>>>>>>>> Trying to understand when an explicit verb is used in a  tacit
> >>>>>>>>>>>>
> >>>>>>>>>>>> form.
> >>>>>>>>>> For example if I define v1 which is in a tacit form - does not
> have
> >>>>>>>
> >>>>>>>> reference to arguments but contains the explicit verb rplc.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> v1 =: [: ". rplc&(LF;' ')
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> In this case what should  v1 be called - an explicit of tacit
> ?.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> v2 =: v1 f.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> If I now use f. to replace rplc in v1 then v2 is an explicit.
> >>>>>>>>>>>>
> >>>>>>>>>>>> The advantage of using f. is that if rplc has no public names
> >>>>>>>>>>>> then
> >>>>>>>>>>>>
> >>>>>>>>>>>> v2
> >>>>>>>>>> has
> >>>>>>>
> >>>>>>>> no
> >>>>>>>>>>>
> >>>>>>>>>>>> public names.
> >>>>>>>>>>>>
> >>>>>>>>>>>> This can be useful is removing public names in a verb.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Any comments to help with my understanding of tacits.
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> Regards
> >>>>>>>>>>>>
> >>>>>>>>>>>> Bill Szuch
> >>>>>>>>>>>>
> >>>>>>>>>>>> ------------------------------------------------------------
> >>>>>>>>>>>>
> >>>>>>>>>>>> ----------
> >>>>>>>>>> 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/forum
> >>>>>>>> s.htm
> >>>>>>>>
> >>>>>>>> ------------------------------------------------------------
> >>>>>>> ----------
> >>>>>>> For information about J forums see http://www.jsoftware.com/forum
> >>>>>>> s.htm
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>
> >>>>>> Devon McCormick, CFA
> >>>>>>
> >>>>>> Quantitative Consultant
> >>>>>> ------------------------------------------------------------
> ----------
> >>>>>> 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
> > ----------------------------------------------------------------------
> > 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