Let me try.

The expression 3$&.|.n occurs on the Vocabulary page for Rank u"n . 
 From the definition of &. we can decipher that

3 $&.|. n  is  |. (|. 3) $ (|. n)  that is  |. 3 $ |. n

Isn’t that last easier to understand at a glance?

Simple J prefers trains with no conjunction other than Rank " .

Expressed in Simple J the verb applied to n is [: |. 3 $ |. .

Perhaps a better name would be Beginner's J.  Keep the syntax simple, 
make ranks explicit when you need to think about them.  Eventually you 
will need to graduate from Beginner's J.


On 11/29/2011 9:35 AM, Tracy Harms wrote:
> Linda,
>
> It does not seem to me that rephrasing to avoid @ (rank-zero composition)
> makes expressions simpler, either in this specific case or in general.
>
> If you'd like to elaborate on why that seems simpler to you, I'd like to
> hear your perspective.
>
> --Tracy
>
>
> On Sat, Nov 26, 2011 at 9:46 AM, Linda Alvord<lindaalv...@verizon.net>wrote:
>
>> A function that works.  It is not simple. Remove the @
>>
>> Linda
>>
>> -----Original Message-----
>> From: programming-boun...@jsoftware.com
>> [mailto:programming-boun...@jsoftware.com] On Behalf Of EelVex
>> Sent: Saturday, November 26, 2011 9:15 AM
>> To: matxinle...@hotmail.com
>> Cc: Programming forum
>> Subject: Re: [Jprogramming] FW: A simple function
>>
>> On Sat, Nov 26, 2011 at 11:29 AM, m l<matxinle...@hotmail.com>  wrote:
>>
>>>
>>> I`m a beginner in J programming.
>>> I need writing a simple function:
>>>
>>> round ( x * sqrt (x*y))
>>>
>>> Thanks in advance.
>>>
>>> Matxin
>>>
>>>
>> Among the gazillion ways to do this:
>>
>> f =: [:<.0.5+ {. * %:@*/
>> f 15 30
>> 318
>> ------
>> 1. If you have a list of two numbers: x,y, you multiply them with `*/`:
>> */ 15 30
>> 450
>>
>> 2. You then take the square root (`%:`) of (`@`) that:
>> (%: @ */) 15 30
>> 21.2132
>>
>> 3. and multiply that by the first term of your list (`{.`)
>> ({.  * (%: @ */)) 15 30
>> 318.198
>>
>> 4. You then "apply" (`[:`) rounding (`<.0.5+`) to that:
>> ([:<.0.5+ {. * (%:@*/)) 15 30
>> 318
>>
>> Note that the construct in step 3 is a train of 3 verbs (see:
>> http://www.jsoftware.com/help/learning/09.htm).
>> (f g h) y  == (f y) g (h y)
>> where
>> y = 15 30
>> f = {.  (take first)
>> g = *  (multiply)
>> h = %:@*/  (square root of product)
>>
>> Also, you round a number n by taking the floor of (n + 0.5).
>>
> ----------------------------------------------------------------------
> 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