There is a reason why the exercises 2 and 3 (described in [0]) are
difficult. The Toolkit adverbs , hg and adv, facilitate the production of
adverbs which are capable to render whatever explicit adverbs can; however,
when the explicit adverbs produce verbs (e.g., u rscan) and the arguments
of these verbs (e.g., y) are also referred within the definition of the
explicit adverbs (e.g., 1 : '((>: - m |&# y) |. m)/y') then the
straightforward way to produce tacit adverbs via hg or adv is not
satisfactory because the products (e.g., u (1 : '((>: - m |&# y) |. m)/y'))
involve unresolved explicit definitions.
The following are hints to find (fully tacit) solutions for these
particular exercises; however, they can be applied to similar tasks.
Moreover, general solutions for this kind of situation are possible using a
tool that will be shown in the near future (stay tuned).
H
i
n
t
s
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Exercise 2. Notice that:
+`-`*`% &( ( ([ |.~ >: o - o (|&#)) ; an y))\. 1 2 3 4 5
6 7 8
┌─────────┬───────────────────┐
│┌─┬─┬─┬─┐│┌─┬───────────────┐│
││-│*│%│+│││0│1 2 3 4 5 6 7 8││
│└─┴─┴─┴─┘│└─┴───────────────┘│
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬─────────────┐ │
││*│%│+│-│││0│2 3 4 5 6 7 8│ │
│└─┴─┴─┴─┘│└─┴─────────────┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬───────────┐ │
││%│+│-│*│││0│3 4 5 6 7 8│ │
│└─┴─┴─┴─┘│└─┴───────────┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬─────────┐ │
││+│-│*│%│││0│4 5 6 7 8│ │
│└─┴─┴─┴─┘│└─┴─────────┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬───────┐ │
││-│*│%│+│││0│5 6 7 8│ │
│└─┴─┴─┴─┘│└─┴───────┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬─────┐ │
││*│%│+│-│││0│6 7 8│ │
│└─┴─┴─┴─┘│└─┴─────┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬───┐ │
││%│+│-│*│││0│7 8│ │
│└─┴─┴─┴─┘│└─┴───┘ │
├─────────┼───────────────────┤
│┌─┬─┬─┬─┐│┌─┬─┐ │
││+│-│*│%│││0│8│ │
│└─┴─┴─┴─┘│└─┴─┘ │
└─────────┴───────────────────┘
(Incidentally, this suggests a potential alternative sequential approach
that one could follow if the verbs within the gerund were very expensive to
compute.)
Exercise 3.
These are some hints for some solutions:
0. Use hg or adv to produce directly the form
[`([: I. u -:"_1 _ ])`(u"_)} (see Raul's ritemT adverb [1])
1. Notice that ([`([:I. u -:"_1 _ ])`(u"_)}) (tie&''adv) is a
gerund associated to the verb [`([: I. u -:"_1 _ ])`(u"_)} .
What remains to be accomplished is to replace the instances of
u in the gerund by the argument of the adverb.
2. Use one the the combinations mentioned in [2]
3. There is, at least, another approach.
References
[0] [Jprogramming] Adverbial Tacit Jym
http://www.jsoftware.com/pipermail/programming/2016-March/044692.html
[1] [Jprogramming] Replace Items
http://www.jsoftware.com/pipermail/programming/2016-March/044625.html
[2] [Jprogramming] Adverbial Tacit Jym -spoilered
http://www.jsoftware.com/pipermail/programming/2016-April/045003.html
On Sun, Mar 13, 2016 at 10:59 PM, Jose Mario Quintana <
[email protected]> wrote:
> Welcome to the Adverbial (and Conjunctional) Tacit Jymnasium :)
>
> Orthodox and wicked routines will be practiced here for those interested
> in developing adverbial (and conjunctional) tacit muscles. Official
> interpreters will be the standard equipment; however, Unbox, Jx, and other
> J interpreters (including Golden Age J interpreters), as well as Toolkits ,
> see for example [0], and alike (e.g., the tacit translator), are in general
> more than acceptable although occasionally some restrictions might be
> imposed aiming to develop certain muscles. Since adverbial (and
> conjunctional) tacit writing can (following two closely related approaches)
> be reduced to verbal tacit writing, this is also a place to exercise verbal
> tacit muscles. In addition, some adverbs (and conjunctions) which will be
> eventually shown here can provide general support for producing tacit
> verbs, adverbs and conjunctions.
>
> Instructors will describe an exercise and, unless otherwise specified in
> advance, will be prepared to show at least one way to perform it if patrons
> (including other instructors) have not performed the exercise after a
> reasonable time; alright, they have bragging rights either way ;) The
> exercises would typically involve producing adverbs with bonus points for
> producing fixed versions of the adverbs and their products. Exercises are
> not required to be brand new. Given credit to the originators of certain
> techniques is not necessary (but you know who you are and bragging is
> allowed). Spoiler alerts by instructors and patrons will be appreciated.
>
> Instructors (Dan, Thomas et al. are you listening?), not to mention
> patrons (including beginners), are all very welcome here. How long will
> the Jym remain open? Indefinitely, as long as there enough patrons and
> instructors or we are kicked out of here.
>
> Let us start with a few exercises with different degrees of difficulty
> (feel free to ask any questions just be patient with me, sometimes I
> disappear for a few days):
>
>
> - Exercise 0. Rank infinity
>
> Produce a (tacit, of course) adverb a0 such that u a0 produces u"_
> where u is a noun or a verb, for example,
>
> u a0
> u"_
>
> *:@:(+/) a0
> *:@:(+/)"_
>
> u=. 1 2 3
>
> u a0
> 1 2 3"_
>
> 1 2 3 a0
> 1 2 3"_
>
>
> - Exercise 1. Operating on the first and last items
>
> Produce an adverb a1 such that u a1 produces {. u {: where u is a verb,
> for example,
>
> erase'u'
> 1
>
> u a1
> {. u {:
>
> * a1
> {. * {:
>
> * a1 2 3 5 7
> 14
>
>
> - Exercise 2. Back insert
>
> Produce an adverb a2 which is a tacit counterpart of the explicit adverb
> rscan, see [1],
>
> rscan=. 1 : '((>: - m |&# y) |. m)/y'
>
> for example,
>
> (+`%`* rscan\. ,: +`%`* a2\.) 1 2 3 4 5 6 7
> 1.16184971 0.161849711 12.3571429 4.11904762 0.119047619 42 7
> 1.16184971 0.161849711 12.3571429 4.11904762 0.119047619 42 7
>
> (+`-`*`% rscan\. ,: +`-`*`% a2\.) 1 2 3 4 5 6 7 8
> _0.6 1.6 0.8 3.75 _0.25 5.25 0.875 8
> _0.6 1.6 0.8 3.75 _0.25 5.25 0.875 8
>
>
> - Exercise 3. Replace items
>
> Produce an adverb a3 which is a tacit counterpart of the explicit adverb
> ritem, see [2],
>
> ritem =: 1 : (':' ; 'x (I.m-:"_1 _ y) } m')
>
> for example,
>
> C=. 3 4$i.8
> A=. i.3 2 4
>
> assert 9 8 7 6 (C ritem -: C a3) 0 1 2 3
> assert (100%i.2 4) (A ritem -: A a3) 16+i.2 4
>
>
> References
>
> [0] [Jprogramming] Tacit Toolkit (was dyadic J)
>
> http://www.jsoftware.com/pipermail/programming/2015-December/043757.html
>
> [1] [Jprogramming] Am I understanding m/y ?
>
> http://www.jsoftware.com/pipermail/programming/2016-February/044483.html
>
> [2] [Jprogramming] Replace Items
> http://www.jsoftware.com/pipermail/programming/2016-March/044625.html
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm