On Thu, Feb 08, 2001 at 08:30:31PM +0000, Marcin 'Qrczak' Kowalczyk wrote:
Signum doesn't require Ord. signum z = z / abs z for complex numbers.
I'd be careful here. \begin{code} signum 0 = 0 signum z = z / abs z \end{code} This is, perhaps, neither precise nor general enough. The signum/abs pair seem to represent direction and magnitude. According to the line of reasoning in some of the earlier posts in this flamewar, the following constraints: (1) z = signum z <*> abs z where <*> is appropriately defined (2) abs $ signum z = 1 should be enforced, if possible, by the type system. This suggests that for any type having a vector space structure over Fractional (or whatever the hierarchy you're brewing up uses for rings with a division partial function on them) that the result type of signum lives in a more restricted universe, perhaps even one with a different structure (operations defined on it, set of elements) than the argument type, and it seems more than possible to parametrize it on the argument type. The abs is in fact a norm, and the signum projects V^n -> V^n / V. Attempts to define these things on Gaussian integers, p-adic numbers, polynomial rings, and rational points on elliptic curves will quickly reveal limitations of the stock class hierarchy. Now, whether it's actually desirable to scare newcomers to the language into math phobia, wetting their pants, and running screaming with subtleties like this suggests perhaps that one or more "alternative Preludes" may be desirable to have. There is a standard Prelude, why not a nonstandard one or two? We have the source. The needs of the geek do not outweigh the needs of the many. Hence, we can cook up a few Preludes or so on our own, and certainly if we can tinker enough to spam the list with counterexamples and suggestions of what we'd like the Prelude to have, we can compile up a Prelude for ourselves with our "suggested changes" included and perhaps one day knock together something which can actually be used and has been tested, no? The Standard Prelude serves its purpose well and accommodates the largest cross-section of users. Perhaps a Geek Prelude could accommodate the few of us who do need these sorts of schenanigans. Cheers, Bill -- <j0][nD33R:#math> Excel/Spreadsheet Q: What is the formula for finding out the time passed between two dates and or two times in the same day? <MatroiDN:#math> excel/spreadsheet? Hmm, this is math? Is there a GTM on excel or maybe an article in annals about spreadsheets or maybe there's a link from wolfram to doing your own computer work, eh? <danprime:#math> jeeem, haven't you seen "Introduction to Algebraic Excel"? <danprime:#math> or "Spreadsheet Space Embeddings in 2-Manifolds" <brouwer:#math> i got my phd in spreadsheet theory <brouwer:#math> i did my thesis on the spreadsheet conjecture