Though I am quite interested in the topic, I don't have the time right now to 
get into a long discussion.

But in brief, I was presenting a way to think about tacit code, which 
purposefully obscured some details.  But to respond to
specific points:

        *  Tacit code can include explicit code, 
            and explicit code can include tacit code.
            But a definition is not fully tacit unless
            all its components are fully tacit. As you said,
            some primitives produce explicit definitions
            but these primitives may be called in an tacit
            context.  However, if that tacit context
            embeds (carries in its definition) the explicit 
            result of those primitives, then it is no longer
            (fully) tacit.  Eg  3 :'blah y' + 3&* or ". bind 'NOUN'
            etc.  I wrote up a longer treatment of this
            bullet in the posts I cited earlier.
        
        *  Some primitives are not functional
             but this is not in the control of the user
             who writes tacit code.  The fact that
             some primitives have hidden state
             (e.g. ? s: !:) should be considered an 
             implementation detail, and so long
             as the user himself isn't introducing
             non-functional or explicit code, he
             may consider his code tacit.


-Dan

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to