"That format is neither lr nor ar, but they are 'real verbs'"

You got it!  The format is a list of boxed verbs which one can easily
produce, from a common gerund form (encoding a list of verbs), for example,

   G=. (17 b.)`(23 b.)`(32 b.)`(33 b.)`(34 b.)

using the toolkit's  box  verb,

   box=. (< o train "0) f.

One can produce,

   ( V=. box G )
┌─────┬─────┬─────┬─────┬─────┐
│17 b.│23 b.│32 b.│33 b.│34 b.│
└─────┴─────┴─────┴─────┴─────┘

One can reproduce G back from V as follows,

   tie=. Cloak;:'`'
   unbox=. , o (tie f.&''&>)

   unbox V
┌─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐
│┌──┬────────┐│┌──┬────────┐│┌──┬────────┐│┌──┬────────┐│┌──┬────────┐│
││b.│┌──────┐│││b.│┌──────┐│││b.│┌──────┐│││b.│┌──────┐│││b.│┌──────┐││
││  ││┌─┬──┐││││  ││┌─┬──┐││││  ││┌─┬──┐││││  ││┌─┬──┐││││  ││┌─┬──┐│││
││  │││0│17│││││  │││0│23│││││  │││0│32│││││  │││0│33│││││  │││0│34││││
││  ││└─┴──┘││││  ││└─┴──┘││││  ││└─┴──┘││││  ││└─┴──┘││││  ││└─┴──┘│││
││  │└──────┘│││  │└──────┘│││  │└──────┘│││  │└──────┘│││  │└──────┘││
│└──┴────────┘│└──┴────────┘│└──┴────────┘│└──┴────────┘│└──┴────────┘│
└─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘
   assert G -: unbox V

The adverb  `:6  and its dual verb  train  can deal, as you noticed, with a
list of boxed verbs,

   assert ((V`:6)`'' -: ((G`:6)`'')) *. ((train V)`'' -: ((G`:6)`''))

This is quite useful for tacit adverbial programming; see, for example, the
definition of adv in the toolkit (adv=. ...).

In contrast, as you also noticed, `:0, `:3 (and other constructions) which
expect a common gerund cannot deal with a list of boxed verbs directly;
naturally, one can use  unbox  indirectly, for example,

   (unbox V)`:3
17 b.`(23 b.)`(32 b.)`(33 b.)`(34 b.)`:3

or, box inv V

   1 ((box inv V)`:0) _1234
0 _1233 _2467 _2468 _2468
   1 (G          `:0) _1234
0 _1233 _2467 _2468 _2468

The noun produced by  (box inv V)  is not a genuine gerund but it is
disguised as one; check it out with the isgerund verb.  Producing a
disguised common gerund from a gerund is straightforward,

   (]&.:box) G

┌─────────┬─────────┬─────────┬─────────┬─────────┐

│┌─┬─────┐│┌─┬─────┐│┌─┬─────┐│┌─┬─────┐│┌─┬─────┐│

││0│17 b.│││0│23 b.│││0│32 b.│││0│33 b.│││0│34 b.││

│└─┴─────┘│└─┴─────┘│└─┴─────┘│└─┴─────┘│└─┴─────┘│

└─────────┴─────────┴─────────┴─────────┴─────────┘





On Tue, Aug 2, 2016 at 10:21 AM, 'Pascal Jasmin' via Programming <
[email protected]> wrote:

> 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
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to