From: "S.D.Mechveliani" <[EMAIL PROTECTED]> Date: Thu, 13 Dec 2001 12:53:32 +0300
Further, the definintion > gcd(x, y) to be the smallest > z >= 0 such that {m*x + n*y | m, n in Z} = {n*z | n in Z} is not natural. In particular, how does it generalize to gcd X Y for polynomials in X, Y with rational coefficients? Well, that -is- the way gcd is defined in the commutative algebra textbook I used in graduate school -- I just specialized the definition for the case of the ring of integers, and so I didn't mention that Z was a principle ideal domain. Polynomials in two variables aren't a PID, so yes, you'd have to restore some things I left out. When I said my definition was "general" I suppose I should have anticipated someone would generalize in a way I hadn't intended... (Actually, that definition doesn't even generalize exactly to the Gaussian Integers, where "z >= 0" would have to be replaced by some specification of a region of the complex plane.) ... Probably, the best specification would be gcd n m :: Integer = if n == 0 && m == 0 then 0 else greatest integer that divides both n and m Fortunately, we all seem to agree on what the actual definition should be. I did make a mistake in my previous message. I said that it was nice that gcd(0, x) = x for all x. I should have said: gcd(0, x) = abs(x). _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell