
On Saturday 28 May 2011 14:26:45, Ross Paterson wrote:
On 28 May 2011 11:59, Daniel Fischer wrote:
I would like to propose the elimination of the special error case
gcd 0 0 = error "Prelude.gcd: gcd 0 0 is undefined"
Just deleting that line sounds good. For documentation, I'd suggest:
gcd x y is the non-negative factor of both x and y of which every common factor of x and y is also a factor; for example gcd 4 6 = 2, gcd (-4) 6 = 2, gcd (-4) (-6) = 2, gcd 0 4 = 4, gcd 0 0 = 0. (That is, the common divisor that is "greatest" in the divisibility ordering.)
Thanks, that's pretty nice. (By the way, non-negative, like the current positive, is not entirely true, for bounded signed integer types [with twos' complement representation], gcd minBound minBound = gcd minBound 0 = minBound < 0, should that special case be mentioned or should we ignore it like we currently do?)