Proposal: Make gcd total
Daniel Fischer
daniel.is.fischer at googlemail.com
Sat May 28 14:38:51 CEST 2011
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?)
More information about the Libraries
mailing list