Yes, I know - that's where I was looking for WT, without success. Whatever I'd
copied and pasted in my version doesn't appear to have the line:
Ver=. (<^:(1 -: #)) ...
mentioned in Jose's email, further below in this unsnipped mail.
(It does have, instead,
Ver=. Cloak o af f. NB. Verbing after fixing a pro-adverb or pro-conjunction  )

Perhaps Jose can provide a pointer to the latest version.

Thanks, Skip

Mike


On 20/09/2018 19:46, Skip Cave wrote:
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

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

Reply via email to