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]> 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]> 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:;>> 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/forums.htm
