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