That's true. But sometimes one forgets to redefine the tacit definition
when the noun changes.

On Oct 1, 2017 7:58 AM, "Raul Miller" <[email protected]> wrote:

> Note that that first "gotcha" can be reversed in contexts where it's a
> problem and not a feature. This might also be desirable when dealing
> with large nouns.
>
> The pattern is:  ". bind 'name'
>
> When you use (". bind 'name') you are using a verb whose result is
> always the value of that name. (The verb has infinite rank and always
> ignores any argument(s).)
>
> Thanks,
>
> --
> Raul
>
>
> On Sun, Oct 1, 2017 at 9:43 AM, Don Guinn <[email protected]> wrote:
> > Tacit expressions are really quite simple. They are different from
> > non-tacit expressions only by three simple rules. The fork, hook and
> chain
> > rule. Tacit expressions are identified by the absence of arguments
> included
> > in the expression. They are explained thoroughly in help, so there is no
> > sense in revisiting that. But these rules only affect how multiple verbs
> > interact. The modifiers, i.e. adverbs and conjunctions work identically
> in
> > tacit and non-tacit expressions. It is the modifiers that give much of
> the
> > power to J.
> >
> > People writing tacit tend to use modifiers a lot. They provide tremendous
> > flexibility in writing concise, compact code. Many find it unreadable.
> > Modifiers are used less in non-tacit expressions. Why I don't know. But
> > they could be used a lot more than they are in non-tacit expressions.
> > Perhaps as people learn the power of modifiers they tend to write more
> > tacit expressions.
> >
> > Some think that nouns cannot appear in tacit expressions. That is untrue.
> > They can be attached to verbs in tacit expressions, only not as arguments
> > to the entire expression.
> >
> > Notice that I refer to tacit and non-tacit expressions. That is because
> > they can be mixed in definitions. Explicit definitions can contain a
> > mixture of tacit and non-tacit expressions, even on a line of code. Tacit
> > definitions can contain explicit definitions as well.
> >
> > There are some gotchas in tacit.
> >
> > Tacit definitions use the values of nouns and user definitions at the
> time
> > of definition. Not the time of use. Say you use a noun named "abc" in a
> > tacit definition. Then later change the value of "abc" and use the tacit
> > definition. Oops! The definition still has the old value of "abc".
> >
> > Modifiers do not change how they work between tacit and non-tacit, but
> when
> > combined with verbs they define new verbs. Those new verbs now follow the
> > three rules of tacit. It looks like the modifiers are working
> differently,
> > but it is the new verb that is actually working differently.
> >
> > Tacit expressions can contain tacit expressions. When this happens it can
> > be a bit confusing figuring out what the arguments to the contained
> > expression are.
> >
> > Using very large nouns in a tacit definition can result in very large
> > definitions causing memory problems as the noun is copied into the
> > definition. This can cause problems, but it has interesting possibilities
> > for performance. Consider using (i.) inside a (for.) loop in an explicit
> > definition. Make a local tacit definition before the loop attaching the
> > huge noun to (i.) like this: (search=.hugenoun&i.). Then use (search) in
> > the loop. The overhead of preparing the search, including possibly
> building
> > a hash table is outside the loop. And the huge definition goes away when
> > the explicit definition completes.
> >
> > There are interesting possibilities when one considers using explicit
> verb
> > definitions in a tacit expression. Now you have a chance to do all those
> > naughty tricks like saving intermediate results to global names.
> >
> > To me it's not tacit that causes so many problems, it is the tremendous
> > flexibility provided by modifiers that provide a richness, complexity and
> > power to J.
> > ----------------------------------------------------------------------
> > 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