a1x1x0x1=. : (($: @: +) % ($: @: *))
NB.        (u  @: +) % (u  @: *)

%: a1x1x0x1
%: :($:@:+ % $:@:*)


     4 %: :($:@:+ % $:@:*) 4
0.707107


the alternative:

4 %: 1 : 'u@:+ % u@:*' 4

is not that much simpler.  One pretty cool use of the technique is to return a 
tacit adverb from explicit... what I call double adverbs.  Say for example the 
middle % was another parameter,

  +: % 1 : ': (($: @: +) u ($: @: *))'
+: :($:@:+ % $:@:*)


4 %: % 1 : ': (($: @: +) u ($: @: *))' 4
0.707107

and this can also be done with a conjunction to say make the left + another 
parameter

  4 %: % 2 : ': (($: @: v) u ($: @: *))' + 4
0.707107

The weirdness of this trick though is that the resulting verb only has one 
meaningful valence (which most/great many verbs already do)

  +: : (+ 2 : '($: u v)' -:  )  5
10

weirder for dyadic fork

  * (&>)/ ( :  (+ 2 : '($:@:(,&<) u v)' - )  ) 
*&>/ :($:@:(,&<) + -)

    2 * (&>)/ ( :  (+ 2 : '($:@:(,&<) u v)' - )  ) 4 NB. 8 + _2
6


----- Original Message -----
From: Jose Mario Quintana <[email protected]>
To: Programming forum <[email protected]>
Sent: Tuesday, April 19, 2016 7:15 PM
Subject: Re: [Jprogramming] Adverbial Tacit Jym

Hints and solutions for exercise 1.1.0.1 and 1.1.0.3 are shown after the
alerts.  These complete the whole Exercise 1.1.0 because solutions for the
item 1.1.0.2 have been shown already (see the last trailing message
bellow).  The solutions shown bellow for 1.1.0.1 and 1.1.0.3  and one
solution for 1.1.0.2 involve multiple instances of the argument u; thus,
there are solutions for the 1.1.0.1 item as well.

Let us make the exercises concrete first by providing specific examples;
what is left is to provide the adverbs:

- 1.1.0.1  Provide the adverb a1x1x0x1 corresponding to the dyadic form  (u
@: +) % (u  @: *)  using a variation of the trick shown in the definition
of a1x1 ( see
http://www.jsoftware.com/pipermail/programming/2016-April/044935.html ).
For example,

   1 2 %: a1x1x0x1 3 4
1.15470054 0.866025404

- 1.1.0.3   Provide the adverb a1x1x0x3 corresponding to the dyadic form
(u  @: +) % (u  @: *)  using, again, a variation of the trick shown in the
definition of a1x1 .  For example,

   2 3 %:a1x1x0x3 4 5
0.577350269 0.306199553


H i n t s   f i r s t . . .
H i n t s   f i r s t . .
  H i n t s   f i r s t .
   H i n t s   f i r s t
    H i n t s   f i r s
     H i n t s   f i r
      H i n t s   f i
       H i n t s   f
        H i n t s
         H i n t s
          H i n t
           H i n
            H i
             H

- 1.1.0.1  The adverb a1x1x0x1 is a counterpart of a1x1 swapping monadic
and dyadic.

- 1.1.0.3  Given the adverbs p=. (&>)/  and   q=. @:(,&<)  then  one can
assert  X ((u p)q -: u) Y .  For example,

   1 2 ( (% p)q -: %) 3 4
1


S o l u t i o n s   a r e   n e x t . . .
S o l u t i o n s   a r e   n e x t . .
  S o l u t i o n s   a r e   n e x t .
   S o l u t i o n s   a r e   n e x t
    S o l u t i o n s   a r e   n e x
     S o l u t i o n s   a r e   n e
      S o l u t i o n s   a r e   n
       S o l u t i o n s   a r e
        S o l u t i o n s   a r e
         S o l u t i o n s   a r
          S o l u t i o n s   a
           S o l u t i o n s
            S o l u t i o n s
             S o l u t i o n
              S o l u t i o
               S o l u t i
                S o l u t
                 S o l u
                  S o l
                   S o
                    S

- 1.1.0.1

   a1x1x0x1=. : (($: @: +) % ($: @: *))
      NB.        (u  @: +) % (u  @: *)

       %: a1x1x0x1
%: :($:@:+ % $:@:*)

   1 2 %: a1x1x0x1 3 4
1.15470054 0.866025404


- 1.1.0.3

         a1x1x0x3=. ((&>)/) ( : (*:@:(1 -~ $:q) % %:@:(1 + $:q)))
           NB.                   *:@:(1 -~ u  ) % %:@:(1 + u  )

       %:a1x1x0x3
%:&>/ :(*:@:(1 -~ $:@:(,&<)) % %:@:(1 + $:@:(,&<)))

   2 3 %:a1x1x0x3 4 5
0.577350269 0.306199553





On Wed, Apr 13, 2016 at 7:33 PM, Jose Mario Quintana <
[email protected]> wrote:

> Pascal, you are right about the example.  Allow me to be more specific by
> labeling the cases:
>
> Exercise 1.1.0
>
> -  1.1.0.0  Provide an example of the method when there are multiple
> instances of u
>
> -  1.1.0.1  Provide an example of the method when u is monadic and the
> product  (u a) is dyadic
>
> -  1.1.0.2  Provide an example of the method when u is monadic and the
> product is also monadic
>
> -  1.1.0.3  Provide an example of the method when u is dyadic and the
> product is dyadic
>
> The generic form   u@{. + u@{:  corresponds to the case 1.1.0.2 when
> there are two instances of u.  The challenge is to exhibit an adverb, say,
> a1x1x0x2 such that, for example,
>
>    *: a1x1x0x2 3 4 5 6
> 45
>
> by means of the method (i.e., using the same kind of trick).
>
>
> A   m i n o r   h i n t   f o l l o w s . . .
>  A   m i n o r   h i n t   f o l l o w s . .
>   A   m i n o r   h i n t   f o l l o w s .
>    A   m i n o r   h i n t   f o l l o w s
>     A   m i n o r   h i n t   f o l l o w
>      A   m i n o r   h i n t   f o l l o
>       A   m i n o r   h i n t   f o l l
>        A   m i n o r   h i n t   f o l
>         A   m i n o r   h i n t   f o
>          A   m i n o r   h i n t   f
>           A   m i n o r   h i n t
>            A   m i n o r   h i n t
>             A   m i n o r   h i n
>              A   m i n o r   h i
>               A   m i n o r   h
>                A   m i n o r
>                 A   m i n o r
>                  A   m i n o
>                   A   m i n
>                    A   m i
>                     A   m
>                      A
>                       A
>
>
>    #(5!:5)<'a1x1x0x1'  NB. The tally of the lr of one solution...
> 28
>
> Incidentally, when  u  is a large verb and there are multiple instances of
> it, this kind of solutions produce thrifty verbs.  The caveat, because
> their reliance on $:, is that cannot be embedded in within a fixed tacit
> verb...  Unless, they are wearing a suit of armor!
>
>
> On Tue, Apr 12, 2016 at 2:32 PM, 'Pascal Jasmin' via Programming <
> [email protected]> wrote:
>
>>
>>
>> > Provide an example of the method when there are multiple instances of u
>>
>> Not sure how here, except where 1 : 'u@{. + u@{:' could be refactored
>> into a single u, and then use $:
>>
>> Very interested in understanding other 3 examples.
>>
>>
>> ----- Original Message -----
>> From: Jose Mario Quintana <[email protected]>
>> To: Programming forum <[email protected]>
>> Sent: Tuesday, April 12, 2016 10:17 AM
>> Subject: Re: [Jprogramming] Adverbial Tacit Jym
>>
>> Anyone that wants to know the answer can find the original one [0] written
>> almost 10 years ago!
>>
>> Sorry Dan, here there are more minor hints ;)
>>
>> The importance of this solution is that illustrates a fairly general and
>> straightforward method for writing of a very common form: u a where u is a
>> verb and its product  (u a)  is also a verb.
>>
>> This a bonus exercise:
>>
>> Exercise 1.1.0
>>
>> -  Provide an example of the method when there are multiple instances of u
>>
>> -  Provide an example of the method when u is monadic and the product  (u
>> a) is dyadic
>>
>> -  Provide an example of the method when u is monadic and the product is
>> also monadic
>>
>> -  Provide an example of the method when u is dyadic and the product is
>> dyadic
>>
>>
>>
>> [0] [Jprogramming] Tacit adverb definitions?
>>    http://www.jsoftware.com/pipermail/programming/2006-July/002627.html
>>
>> On Tue, Apr 12, 2016 at 8:50 AM, Dan Bron <[email protected]> wrote:
>>
>> > Pascal wrote:
>> > > for clarity, the answer is,
>> >
>> > No hints, please! Anyone who wants to know the answer can just scroll
>> down
>> > in Raul’s original message.
>> >
>> > -Dan
>> > ----------------------------------------------------------------------
>> > 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to