Pascal wrote:
"a6 is a bit ambiguous if your example uses a u that returns nothing or y."
I do not know exactly what you mean by "returns nothing [f]or y" but if u
is defined, for instance, as u=. ''"_ or u=. (0 0$'')"_ the results of
u("_1) Y and u cheap Y should still match (at least for Y=. 4 3 2 $
i.4) "but u a6 does not repeat the computation of the same items of Y."
Did I miss your point?
On Sun, Apr 24, 2016 at 9:27 PM, 'Pascal Jasmin' via Programming <
[email protected]> wrote:
> As usual I'm discussing solutions below
> .
> .
> .
> .
> .
>
> .
> .
> .
> .
> .
>
>
> a4 =: 1 : 'u' is pretty hard to beat. semi-tacit: return value is tacit.
>
>
> without going wicked, this is close, but only works for non nouns.
>
> a4 =: (`'') (`:6)
>
> this seems like a reasonable cheat
>
> ("_ )(`'' )(`:6)
>
> assuming a5 argument is a noun
>
> a5 =: a4(<@:) V
>
> where V cheats:
>
>
> V =: 1 : 'u i.0'
>
> a6 is a bit ambiguous if your example uses a u that returns nothing or y.
>
> very interested in a7.
>
>
>
>
> ----- Original Message -----
> From: Jose Mario Quintana <[email protected]>
> To: Programming forum <[email protected]>
> Sent: Sunday, April 24, 2016 7:54 PM
> Subject: Re: [Jprogramming] Adverbial Tacit Jym
>
> Now that the first round of exercises are almost out of the way we can
> entertain some utility adverbs.
>
> This round is open in the sense that explicit adverbs are also allowed as
> solutions; but, of course, tacit solutions would be better and fixed tacit
> solutions would be the best ;)
>
>
> Exercise 4. Produce the Golden Age Identity adverb a4 (Id): "]: is the
> identity adverb, that yields its argument." For example,
>
> Id=. 'a4'f.
>
> 1 2 3 Id
> 1 2 3
> * Id
> *
> 1 2 3 * Id 4 5 6
> 4 10 18
>
> Hint: It is easy using hg or adv.
>
>
> Exercise 5. Produce the adverb a5 that yields its argument boxed. For
> example,
>
> (i.2 3) a5
> ┌─────┐
> │0 1 2│
> │3 4 5│
> └─────┘
>
> Hint: It is easy using adv.
>
>
> Exercise 6. Let us assume that u is an arbitrary monadic verb which is
> expensive to compute. Produce a6 such that (u a6)Y -: (u ("_1))Y but u
> a6 does not repeat the computation of the same items of Y. For example,
>
> cheap=. 'a6'f.
>
> delay=. 6!:3
> timer=. 6!:2
>
> timer'delay ("_1) (5$%:2)'
> 7.07262802
> timer'delay cheap (5$%:2)'
> 1.41460927
>
> (delay cheap -: delay ("_1)) (5$%:2)
> 1
>
> (([echo) o (+/) cheap ; +/ ("_1))4 3 2 $ i.4
> 2 5
> 4 7
> ┌───┬───┐
> │2 5│2 5│
> │4 7│4 7│
> │2 5│2 5│
> │4 7│4 7│
> └───┴───┘
>
>
> Exercise 7. Produce the adverbs a7x0 and a7x1 that provide respectively
> monadic and dyadic recursion scope to a tacit verb denoted by the self
> reference verb ($:) yielding another tacit verb (a wicked verb, if
> necessary). For example,
>
> mRS=. 'a7x0'f. NB. Monadic recursive scope
> dRS=. 'a7x1'f. NB. Dyadic recursive scope
>
> fac=. 1:`(] * $:@:<:)@.*
> (1 + fac f.mRS)5
> 121
>
> binomial=. 1:`(%~ * $:&:<:)@.(*@:[)
> 3 (1 + binomial f.dRS) 7
> 36
>
> Hint: My solutions are wicked.
>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm