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