Notice, also, once my two favorite (relatively simple) higher-order verbs, Cloak and train, are defined then your results can be reproduced as straightforward one-liners, see below, ...
(Cloak ]&.:train ;:'b./ ')&.> 17 23 32 33 34 ┌──────┬──────┬──────┬──────┬──────┐ │17 b./│23 b./│32 b./│33 b./│34 b./│ └──────┴──────┴──────┴──────┴──────┘ (Cloak ]&.:train ;:'b./\')&.> 17 23 32 33 34 ┌───────┬───────┬───────┬───────┬───────┐ │17 b./\│23 b./\│32 b./\│33 b./\│34 b./\│ └───────┴───────┴───────┴───────┴───────┘ (Cloak ]&.:train ;:'&o./')&.> 1 2 3 ┌─────┬─────┬─────┐ │1&o./│2&o./│3&o./│ └─────┴─────┴─────┘ On Tue, Aug 2, 2016 at 9:01 PM, 'Pascal Jasmin' via Programming < [email protected]> wrote: > The only advantage that is obvious to me for Cloak as a verb is that it > allows ranked/each application. > > The key addition to my adverb version is aar which allows adverb trains in > "simple" linear format. > > > '&o./\' Cloak each 1 2 3 > ┌──────┬──────┬──────┐ > │1&o./\│2&o./\│3&o./\│ > └──────┴──────┴──────┘ > > > > can still make a verb version > > CloakV =: 'Cloak' Cloak > > seems easier to make multiple 'adverbs' with it > > CloakV each cut '&o./\ &.' ┌───────────────────┬──────────┐ > │,^:(0:`(((&o.)/)\))│,^:(0:`&.)│ > └───────────────────┴──────────┘ > > another cool thing that Cloak solves elegantly is the "I want > > to "reduce with adverb" after a verb has applied tacitly", which is not > really possible conventionally. > > at =: 1 : 'u 1 :''2 : ''''u (v@:) '''' u''' NB. double adverb o > (inverted) > > oa =: Cloak at NB. apply adverb after its argument executed. > > cl2ar =: '`'''''oa NB. convert "cloak format" to ar > > dv=: 1 : (':'; 'u y x') > > 0.25 0.5 0.75 '&o.' Cloak cl2ar each '/.'oa '@:(o.@:(%&3))'oa dv 1 2 3 > 0.258819 > 0.866025 > 1 > > a better cl2ar, is one that isn't named > > ar =: 1 : '5!:1 <''u''' > > '&o.' Cloak 'ar'oa each '/.'oa '@:(o.@:(%&3))'oa 1 2 3 > 1&o.`(2&o.)`(3&o.)/.@:(o.@:(%&3)) > > > I like the fact that the Cloak construction reads almost identically to > the manual adverb construction, and the advantage of the oa use is that > another name that would confuse someone who didn't remember creating or > seeing the name is not being used. > > > ----- Original Message ----- > From: Jose Mario Quintana <[email protected]> > To: Programming forum <[email protected]> > Sent: Tuesday, August 2, 2016 6:23 PM > Subject: Re: [Jprogramming] Adverbial Tacit Jym > > Pascal wrote: > > " > an improvement over your/Dan's original Cloak is that you can Cloak an > adverb train, and its clean enough to use anonymously. IMO, its easier to > read > " > > However, "my" Cloak is verbed; facilitating the production of higher-order > verbs which, in turn, allow any kind of words (nouns, verbs, adverbs and > conjunctions) to flow tacitly. See the first few lines of the toolkit as > an example. Your results can be reproduce easily with those tools but it > is not difficult to to start from scratch. A self-contained script follows > (there is no need to run the toolkit), > > > Cloak=. (0:`)(,^:) > Cloak=. ((5!:1)@:<'Cloak')Cloak NB. Cloak verbing itself! (monadic ver) > > o=. @: > e=. &.> > > 'bdot amper slash back evoke'=. Cloak o < e o ;: 'b.&/\`:' NB. Verbing > &, b., /, \ and `: > > back o slash o bdot e f. 17 23 32 33 34 > ┌───────┬───────┬───────┬───────┬───────┐ > │17 b./\│23 b./\│32 b./\│33 b./\│34 b./\│ > └───────┴───────┴───────┴───────┴───────┘ > > an=. < o ((,'0') ,&< ]) NB. Atomizing words (monadic verb) > train=.(evoke f.&6) :. an f. NB. Verbing `:6 with an obverse > > slash o (Cloak ]&.:train ;:'&o.') e f. 1 2 3 > ┌─────┬─────┬─────┐ > │1&o./│2&o./│3&o./│ > └─────┴─────┴─────┘ > > Neatness is in the eye of the beholder (what is it not?). > > More another time, I have to run. > > > > > > > On Tue, Aug 2, 2016 at 11:25 AM, 'Pascal Jasmin' via Programming < > [email protected]> wrote: > > > text at bottom for spoilers > > > > > > > > > > ----- Original Message ----- > > From: 'Pascal Jasmin' via Programming <[email protected]> > > To: "[email protected]" <[email protected]> > > Sent: Tuesday, August 2, 2016 10:21 AM > > Subject: Re: [Jprogramming] Adverbial Tacit Jym > > > > Spoiler > > > > a > > s > > > > a > > > > v > > e > > r > > b > > > > eval =: 1 : ' a: 1 : m' > > > > aar =: 1 : 'if. (0=4!:0 ::0:)@:< ''u'' do. if. (2 = 3!:0) m do. q =. m > > eval else. q =. u end. else. q =. u end. 5!:1 < ''q'' ' > > > > > > Cloak=: aar(0:`)(,^:) > > > > 'and or rotate shift signedshift'=. ('b.' Cloak each) 17 23 32 33 34 > > > > > > A very cool thing about Cloak is that the "verbified modifiers" can > return > > non nouns, and can box non-noun return values, and =:/=. works > > automagically. ("0 doesn't work though) > > > > > > Can even do this: > > > > > > '/'Cloak each ('b.' Cloak each) 17 23 32 33 34 > > ┌──────┬──────┬──────┬──────┬──────┐ > > │17 b./│23 b./│32 b./│33 b./│34 b./│ > > └──────┴──────┴──────┴──────┴──────┘ > > > > (alternate) > > > > '/'Cloak @('b.' Cloak) each 17 23 32 33 34 > > > > That format is neither lr nor ar, but they are "real verbs" > > > > 0 {:: '/'Cloak @('b.' Cloak) each (17 23 32 33 34) 1 1 > > 1 > > > > an improvement over your/Dan's original Cloak is that you can Cloak an > > adverb train, and its clean enough to use anonymously. IMO, its easier > to > > read if there > > > > > > ('/\'Cloak) @('b.' Cloak) each (17 23 32 33 34) > > ┌───────┬───────┬───────┬───────┬───────┐ > > │17 b./\│23 b./\│32 b./\│33 b./\│34 b./\│ > > └───────┴───────┴───────┴───────┴───────┘ > > '&o.' Cloak each 1 2 3 > > ┌────┬────┬────┐ > > │1&o.│2&o.│3&o.│ > > └────┴────┴────┘ > > > > non cloacked verbs still work with "this data", and `:6 works but `:0 > > doesn't. > > > > ar =: 1 : '5!:1 <''u''' > > > > insN =: }:@:,@:([`([ $~ <.&#)@.(>&#) ,.~&>/@:(,&< $~&.> >.&#) ]) > > > > (, ar insN '/'Cloak @('b.' Cloak) each (17 23 32 33 34) )(`:6) 1 1 > > 17 b./ , 23 b./ , 32 b./ , 33 b./ , 34 b./ > > > > > > one way to turn the format into a gerund > > > > > > ('''''`'Cloak@('&o.'Cloak)each 1 2 3)`:0 > > 1&o.`(2&o.)`(3&o.)`:0 > > > > ('''''`'Cloak@('&o.'Cloak)each 1 2 3)/. o. 3 %~ 0.25 0.5 0.75 > > 0.258819 > > 0.866025 > > > > ----- Original Message ----- > > From: Jose Mario Quintana <[email protected]> > > To: Programming forum <[email protected]> > > Sent: Monday, August 1, 2016 11:33 PM > > Subject: Re: [Jprogramming] Adverbial Tacit Jym > > > > Let us keep the adverbial writing challenges/exercises open (non-tacit > > solutions are also welcome). Why not? ;) > > > > > > Mapping nouns to proverbs... > > > > > > Exercise 9.0 > > > > Produce an adverb boolean such that it maps the b. codes to their > > corresponding proverbs; thus, > > > > 'and or rotate shift signedshift'=. 17 23 32 33 34 boolean > > > > NB. Alternatively, (and`or`rotate`shift`signedshift)=. 17 23 32 33 34 > > boolean if the names > > NB. and, or, rotate, shift and signedshift are undefined or > > predefined as verbs > > > > NB. 64-bit... > > assert 48 80187 -: 12345 (and , or) 67890 > > assert 2468 -:1 rotate 1234 > > assert 576460752303423102 _386 -: _5 (shift , signedshift) _12345 > > > > > > Exercise 9.1 > > > > Produce an adverb circle such that it maps the o. codes to their > > corresponding proverbs; thus, > > > > 'sin cos tan'=. 1 2 3 circle > > NB. Alternatively, (sin`cos`tan)=. 1 2 3 circle if > > NB. sin, cos and tan are undefined or predefined as verbs > > > > (sin`cos`tan)/. o. 3 %~ 0.25 0.5 0.75 > > 0.258819 > > 0.866025 > > 1 > > > > 'asin acos atan'=. (-1 2 3) circle > > > > assert (,. -: (asin`acos`atan/.) @: (sin`cos`tan/.)) o. 3 %~ 0.25 0.5 > > 0.75 > > > > > > ___________________ > > > > create a tacit verb parameterized (a double verb) > > > > > > '@:(o.@:(%&3))'Cloak@:('/.'Cloak@:(('''''`'Cloak@('&o.'Cloak)each ))) > > ,^:(0:`(@:(o.@:(%&3))))@:(,^:(0:`/.)@:(,^:(0:`''`)@(,^:(0:`(&o.)))&.>)) > > > > '@:(o.@:(%&3))'Cloak@:('/.'Cloak@:(('''''`'Cloak@('&o.'Cloak)each ))) (1 > > 2 3) > > 1&o.`(2&o.)`(3&o.)/.@:(o.@:(%&3)) > > > > '@:(o.@:(%&3))'Cloak@:('/.'Cloak@:(('''''`'Cloak@('&o.'Cloak)each )))(1 > 2 > > 3) 0.25 0.5 0.75 > > 0.258819 > > 0.866025 > > 1 > > > > is there a way to make this expression a dyad instead of a double verb? > > ie. use x for one parameter (1 2 3) and y for 0.25 0.5 0.75 > > ---------------------------------------------------------------------- > > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
