You must not have executed something:

nPr =: [:*/-i.

always fails with a domain error.

    ([:*/-i.)

is

    [:   (*/  -  i.)

is

    y [: (x */ y) - (x i. y)

which is not useful.

    */@(-i.)

is

    */ x (-i.) y

is

    */ x - i. y

which is permutation.

For a discussion of rank, I like chapter 6 of JfC, which you can get to 
from the help page -- but I would, because I wrote it.

Henry Rich


Alex Gian wrote:
> Although, funnily enough if we define
>   nPr =: [:*/-i.
> then it works
>   14 nPr 1.9
> 1 14 182 2184 24024 240240 2162160 17297280 121080960
> 
> I'm beginning to understand the issue with the rank, although it seems
> to me that "*/@(-i.)" and "[:*/-i." are not a million miles from each
> other, so I can't quite see _which_ is the verb that allows the one to
> work, but not the other.
> 
> Can anyone point me to the best introduction to read about verb rank?
> 
> 
> (BTW, I do understand that if we want the whole sequence
>   */\ 14 - i. 8
> is the better way, since it will avoid redundant recomputation.)
> 
> 
> 
> On Fri, 2010-02-19 at 13:12 +0100, Zsbán Ambrus wrote:
> 
>> The way we defined that verb, it won't automatically work for an array
>> of numbers.  J builtins that do numerical computations on single
>> numbers are defined to be extended to arrays.  For example, ^!._1 is
>> such a builtin, so we get
>>
>>    14 ^!._1 i. 9
>> 1 14 182 2184 24024 240240 2162160 17297280 121080960
>>
>> Other builtins and user functions do use array arguments as a whole,
>> so J won't automatically apply our defined verbs to each element,
>> which is why the above doesn't work.  You can use the rank conjuction
>> to apply them to each element and assemble the results.
>>
>>    14 */@(-i.)"0 i. 9
>> 1 14 182 2184 24024 240240 2162160 17297280 121080960
>>
>> Although if you need the whole sequence, it might be better to compute
>> it like this,
>>
>>    1, */\ 14 - i. 8
>> 1 14 182 2184 24024 240240 2162160 17297280 121080960
>>
>> Ambrus
> 
> 
> 
> ----------------------------------------------------------------------
> 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