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

Reply via email to