It is not the best answer. The best answer is (as suggested by the ISO standard) to signal error on a system without complex numbers.
----- Original Message ----- From: Mark Niemiec <[email protected]> Date: Wednesday, June 24, 2009 10:10 Subject: Re: [Jprogramming] Programming Digest, Vol 45, Issue 43 To: [email protected] > Roger Hui <[email protected]> wrote: > > Historically, _8^%3 in APL gives _2 as the answer. > > But is this in violation of the 2001 ISO Standard > > on Extended APL. I consider the _2 answer as > > an "Easter egg" tour de force by the original > > implementers (principally Larry Breed): > > For x^y where x is negative, assume y is > > positive. (For negative y, replace x by %x > > and y by -y.) The system computes a rational > > approximation of y of integers m and n with > > 1=gcd(m,n) . If n is even, signal domain error; > > if n is odd, x^y is the real number (x^m)^%n . > > This would be the best answer one could give in systems > that supported real numbers but not complex numbers > (APL\360 anyone?) > For systems that do both, this answer is nice only in > that it would be backwards-compatible with older systems, > but it would have the inconsistent ugliness that > (3%:_8) ~: (3%:_8 j.0) that violates the fairly pervasive > requirement that a-:b => (u a)-:(u b) in all but a few > well-defined cases. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
