The original "Tacit Toolkit"  thread was entitled "Tacit Toolkit (was
dyadic J)", started on Dec 14, 2015 in the programming forum.

Skip



On Thu, Sep 20, 2018 at 10:36 AM 'Mike Day' via Programming <
programm...@jsoftware.com> wrote:

> This thread has come a long way!
>
> Anyway,  as someone who aims for neat tacit verbs but usually fails and
> mainly uses explicit ones,  and is pretty vague about adverbs,  and could
> perhaps learn something useful from your insights,  where can I find
> your Wicked Tookit?
>
> I do have a saved script,  named (by me, I think)
> tacit_toolkit.ijs.  I tried loading it just now,  so updating its
> time-stamp,
> so I don't know its age!  I don't recall ever getting it to load
> successfully;
> this is today's result:
> load 'c:/d/j807/user/tacit_toolkit.ijs'
> |value error: script
> | u(a3=.(o(train o aw f.))('av'f.))(a4=."_)
> |[-54] c:\d\j807\user\tacit_toolkit.ijs
>
> Here are the first few "working" lines:
> (_ o=. @:) (c=. "_) (e=. &.>) (x=. @:[) (y=. @])
> an=. <@:((,'0') ,&< ])  NB. Atomizing words (monadic verb)
> Cloak=. (0:`)(,^:)      NB. Cloaking (the atomic representaions of)
> ....
>
> I think I might have copied and pasted the script from a forum
> message,  but presumably there's a near working version
> somewhere on jsoftware.com or elsewhere up there in the
> clouds.
>
> Thanks,
>
> Mike
>
>
> On 19/09/2018 23:58, Jose Mario Quintana wrote:
> > You are welcome David,
> >
> > When the argument verb appears more than once in the produced verb then
> the
> > task of producing a tacit adverb is more complicated; for example, it is
> > not trivial to produce a corresponding tacit adverb for this deceptively
> > simple template,
> >
> > mean@:u - u@:mean
> >
> > In other words, it is not trivial to produce a tacit adverb (gap) such
> > that, for example,
> >
> >     u gap
> > mean@:u - u@:mean
> >
> >     (1 + *:)gap
> > mean@:(1 + *:) - (1 + *:)@:mean
> >
> >     (1 + *:)gap items (i.3 5)
> > 2 2 2
> >
> > Fortunately, there is a method which can be automated via a tacit adverb
> > (Adv) such that,
> >
> > gap=. (mean@:u - u@:mean)Adv
> >
> > where the parameter u is an unassigned name (or a name already assigned
> to
> > a verb) typically representing a verb.
> >
> > The idea is the following, consider the gerund associated with the
> template,
> >
> >     (mean@:u - u@:mean)`''
> > ┌───────────────────────────────────┐
> > │┌─┬───────────────────────────────┐│
> > ││3│┌─────────────┬─┬─────────────┐││
> > ││ ││┌──┬────────┐│-│┌──┬────────┐│││
> > ││ │││@:│┌────┬─┐││ ││@:│┌─┬────┐││││
> > ││ │││  ││mean│u│││ ││  ││u│mean│││││
> > ││ │││  │└────┴─┘││ ││  │└─┴────┘││││
> > ││ ││└──┴────────┘│ │└──┴────────┘│││
> > ││ │└─────────────┴─┴─────────────┘││
> > │└─┴───────────────────────────────┘│
> > └───────────────────────────────────┘
> >
> > and the gerund associated with an instance of the template,
> >
> >     (mean@:(1 + *:) - (1 + *:)@:mean)`''
> > ┌─────────────────────────────────────────────────────────────────┐
> > │┌─┬─────────────────────────────────────────────────────────────┐│
> > ││3│┌────────────────────────────┬─┬────────────────────────────┐││
> > ││ ││┌──┬───────────────────────┐│-│┌──┬───────────────────────┐│││
> > ││ │││@:│┌────┬────────────────┐││ ││@:│┌────────────────┬────┐││││
> > ││ │││  ││mean│┌─┬────────────┐│││ ││  ││┌─┬────────────┐│mean│││││
> > ││ │││  ││    ││3│┌─────┬─┬──┐││││ ││  │││3│┌─────┬─┬──┐││    │││││
> > ││ │││  ││    ││ ││┌─┬─┐│+│*:│││││ ││  │││ ││┌─┬─┐│+│*:│││    │││││
> > ││ │││  ││    ││ │││0│1││ │  │││││ ││  │││ │││0│1││ │  │││    │││││
> > ││ │││  ││    ││ ││└─┴─┘│ │  │││││ ││  │││ ││└─┴─┘│ │  │││    │││││
> > ││ │││  ││    ││ │└─────┴─┴──┘││││ ││  │││ │└─────┴─┴──┘││    │││││
> > ││ │││  ││    │└─┴────────────┘│││ ││  ││└─┴────────────┘│    │││││
> > ││ │││  │└────┴────────────────┘││ ││  │└────────────────┴────┘││││
> > ││ ││└──┴───────────────────────┘│ │└──┴───────────────────────┘│││
> > ││ │└────────────────────────────┴─┴────────────────────────────┘││
> > │└─┴─────────────────────────────────────────────────────────────┘│
> > └─────────────────────────────────────────────────────────────────┘
> >
> > The latter is just the former where the atomic representation of u has
> been
> > replaced by the atomic representation of the instance which suggests a
> way
> > to implement the adverb Adv.  The details are in the Wicked Toolkit (WT)
> > script which I have mentioned before in this forum.  Actually, the
> > implementation of Adv is easy using the adverb adv which I also have
> > mentioned recently.
> >
> > Needless to say, this is only for those who like to live on the edge.  :)
> > Incidentally, to be able to run the WT script also on the lastest
> J807-beta
> > interpreters, one needs to replace < at the front of the line,
> >
> > Ver=. (<^:(1 -: #)) ...
> >
> > near the beginning of the script by 0&{::; such that, the line becomes,
> >
> > Ver=. (0&{::^:(1 -: #)) ...
> >
> > One can use Adv, of course, to produce a tacit version of RootMe,
> >
> >     RootMe=. ({.~ (_2 2"_ {~ _1 1 1"_ -: [: * u))@:({. , mean , {:)Adv
> >     u RootMe
> > ({.~ (_2 2"_ {~ _1 1 1"_ -: [: * u))@:({. , mean , {:)
> >
> >     v=. 2 + (- ^)
> >     v mean v RootMe ^:_ - 2 1
> > 7.28306e_13
> >
> > Moreover, the method can be extended further in several ways to produce a
> > variety of tacit adverbs. The following is a simple example of a double
> > Curried tacit adverb to provide a favorite fable-while construction,
> >
> >     fw=. ([: action condition 'action^:condition^:_' xi) 2 snb
> >
> >     u v fw
> > u^:v^:_
> >
> >
> >
> > On Sun, Sep 16, 2018 at 10:15 AM, David Lambert <b49p23t...@gmail.com>
> > wrote:
> >
> >> Thanks Jose for guiding me through my first adventure with adverbs
> >> generating nested trains.  Your message helped.
> >>
> >> Finally, using only 1 application of evoke gerund:
> >>
> >> RootMe =: ((([:`*`)(-:`)((_1 1 1"_)`)({~`)(_2
> >> 2"_`))({.~`)(`:6))(@:({.,mean,{:))
> >>
> >>
> >> Review:
> >>
> >> Goal: find an adverb to replace u in
> >>     ({.~ (_2 2"_ {~ _1 1 1"_ -: [: * u))@:({. , mean , {:)
> >>
> >> I had gotten as far as to write the inner train,
> >>     u  (([:`*`)(-:`)((_1 1 1"_)`)({~`)(_2 2"_`)(`:6))
> >> (_2 2"_ {~ _1 1 1"_ -: [: * u)
> >>
> >> And then was stuck with two problems.
> >> 1) failed to recognize that it the inner train is "v" of my hook
> >> 2) failed to parenthesize @:fork turning it into another adverb
> >> (@:fork)
> >>
> >>     RootMe =: ((([:`*`)(-:`)((_1 1 1"_)`)({~`)(_2
> >> 2"_`)(`:6))({.~`)(`:6))(@:({.,mean,{:))
> >>
> >>     f =: 2 + (- ^)
> >>
> >>     f mean f RootMe ^:_ - 2 1
> >> 7.28306e_13
> >>
> >>
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
> ----------------------------------------------------------------------
> 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