You left out Pascal's
S
p
o
i
l
e
r
s
p
a
c
e
.
.
.
/(@(0 _1&{))
And that's worth mentioning here.
--
Raul
On Thu, Mar 24, 2016 at 4:06 PM, Jose Mario Quintana
<[email protected]> wrote:
> SPOILER ALERT
>
> Solutions to,
>
> - 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
>
>
> in,
>
> 10
> 9
> 8
> 7
> 6
> 5
> 4
> 3
> 2
> 1
> 0
>
>
>
> a1=. ({.`)(`{:)(`:6)
>
> a1=. (({.`'') , ] , ({:`'')c) hg
>
> a1=. train o ({.cv ; ] ; {:cv) f.adv
>
>
> Discussion
>
> First solution,
>
> a1=. ({.`)(`{:)(`:6)
>
> This classic orthodox form illustrates a combination of the two basic
> building forms. For a general explanation see the link in Dan's post [0]
> (together with another solution based on @. by Pascal).
>
> Second solution,
>
> a1=. (({.`'') , ] , ({:`'')c) hg
>
> This form illustrates the general "holy grail" method for producing adverbs
> via the form v hg; hg is defied in the post [1]. The verb v transforms
> the atomic representation of the argument of v hg into the gerund whose
> train is the desired product of the adverb v hg. A sequence of steps for
> building v (and consequently the adverb a1) are shown, in a session excerpt
> (edited for clarity), below,
>
> c =. "_
>
> * ( ] ) hg
> *
> * (({.`'') , ] ) hg
> {. *
> * (({.`'') , ] , ({:`'')c) hg
> {. * {:
>
> u (({.`'') , ] , ({:`'')c) hg
> {. u {:
>
> a1=. (({.`'') , ] , ({:`'')c) hg
>
> Third solution
>
> a1=. train o ({.cv ; ] ; {:cv) f.adv
>
> This form illustrates the general "sorcerer's cauldron" method for
> producing adverbs via the form v adv; adv is defined in the post [2]. The
> verb v transforms directly the argument of v adv into the desired
> product of the adverb v adv. A sequence of steps for building v (and
> consequently the adverb a1) are shown, in a session excerpt (edited for
> clarity), below,
>
> * ] f.adv
> *
> * ({.cv ; ] ) f.adv
> ┌──┬─┐
> │{.│*│
> └──┴─┘
> * ({.cv ; ] ; {:cv) f.adv
> ┌──┬─┬──┐
> │{.│*│{:│
> └──┴─┴──┘
> * train o ({.cv ; ] ; {:cv) f.adv
> {. * {:
>
> u train o ({.cv ; ] ; {:cv) f.adv
> {. u {:
>
> a1=. train o ({.cv ; ] ; {:cv) f.adv
>
> The adverb cv produces a wicked verb that produces the argument of the
> adverb cv regardless of the argument taken by the wicked verb; in that
> sense cv is a generalization of "_, for example,
>
> {.cv _
> {.
>
> ({.cv _) 2 3 5 7
> 2
>
> Writing cv is a challenging exercise and a solution can be found, of
> course, in the J Wicked Toolkit found in the post [2].
>
> The sentence train o ({.cv ; ] ; {:cv) produces the {. u {: train
> (naturally) and its variations are so handy that can be simplified; for the
> example at hand, as [: {.cv ] {: Train where Train is a recurrent
> adverb emulating strand notation (aka, multiple adverb). Versions of this
> adverbs, able to run on an official J interpreter (Jo), are coming in the
> near future to the Jym.
>
>
> References
>
> [0] [Jprogramming] Adverbial Tacit Jym
> http://www.jsoftware.com/pipermail/programming/2016-March/044743.html
>
> [1] [Jprogramming] Adverbial Tacit Jym
> http://www.jsoftware.com/pipermail/programming/2016-March/044789.html
>
> [2] [Jprogramming] Tacit Toolkit (was dyadic J)
> http://www.jsoftware.com/pipermail/programming/2015-December/043757.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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm