[Jprogramming] Puzzling result

Erling Hellenäs erling at erlinghellenas.se
Fri Sep 8 11:19:14 UTC 2017


Case 3 seems to be working in the latest Beta(8.06.03). The problem 
seems to be solved. /Erling

      3!:0 (x: n^2)

128

      (x: n^2) | 5729082486784839

147

     3!:0 (x: n^2)

128


Den 2017-09-07 kl. 20:40, skrev Erling Hellenäs:
> Hi all !
>
> Case 1:
>     3!:0 [ (n^2)
>
> 8
>
>      (n^2) | 5729082486784839
>
> 0
>
> It is non-intuitive that an integer raised to an integer is a float, 
> but I think it is normal. It would be possible with a performance 
> penalty to get an integer result. One problem with that is that it 
> would easily overflow. It would also be possible to have a special 
> operation for this case.
> When the left argument is a float the right argument has to be 
> converted to a float. It must be assumed that this conversion is 
> intentional, even though it is implicit.
>
> Case 2:
>      3!:0 [ (n^2)
>
> 8
>
>      (n^2) | 5729082486784839x
>
> 0
>
> 3!:0 (n^2) | 5729082486784839x
>
> 8
>
> Here the rational seems to be converted to a float and the result is 
> float. Shouldn't we have an error instead of converting rationals to 
> float?
>
> Case 3:
>
> 3!:0 (x: n^2)
>
> 128
>
>      (x: n^2) | 5729082486784839
>
> 0
>
> 3!:0 (x: n^2) | 5729082486784839
>
> 128
>
> I have a hard time understanding what happens here. This result seems 
> very peculiar. Is the left and right argument converted to float and 
> the float result converted to rational?!
> Shouldn't we have an error instead of converting rationals to float?
> We could not have floats auto-converted to rationals?
> In this case the integer should be converted to rational and we should 
> get a rational result?
>
> It is non-intuitive that (*: n) does not give the same result as 
> (n^2). Maybe once this was decided because of performance reasons.
>
> Cheers,
>
> Erling Hellenäs
>
> On 2017-09-05 18:41, Rob B wrote:
>> Could someone explain this please?
>>
>>   n=.14
>>     n
>> 14
>>     (*: n) | 5729082486784839
>> 147
>>     196 | 5729082486784839
>> 147
>>     (n^2) | 5729082486784839
>> 0
>>     (n^2) | 5729082486784839x
>> 0
>>     (x: n^2) | 5729082486784839
>> 0
>>     (x: n^2) | 5729082486784839x
>> 147
>>
>>
>> Regards, Rob Burns
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



More information about the Programming mailing list