Difference between revisions of "Talk:Blow your mind"
(→List / String Operations: new section) |
(→Polynomial signum and abs: new section) |
||
Line 15: | Line 15: | ||
transpose . unfoldr (\a -> toMaybe (not $ null a) (splitAt 2 a)) |
transpose . unfoldr (\a -> toMaybe (not $ null a) (splitAt 2 a)) |
||
+ | |||
+ | == Polynomial signum and abs == |
||
+ | |||
+ | A sensible option for signum and abs for polynomials (with coefficients from a field) would be |
||
+ | |||
+ | signum -> the leading coefficient |
||
+ | abs -> the monic polynomial obtained by dividing by the leading coefficient |
||
+ | |||
+ | As with Integer and Data.Complex's abs and signum, the result of signum is then a unit (ie, a value x for which there exists a y such that xy = 1), and we have |
||
+ | |||
+ | signum a * abs a = a |
||
+ | abs 1 = signum 1 = 1 |
||
+ | abs (any unit) = 1 |
||
+ | abs a * abs b = abs (a * b) |
Revision as of 21:03, 25 August 2012
Name?
Is there a better name for this page? —Ashley Y 00:55, 2 March 2006 (UTC)
i completely agree, the name pretty much sucks. but what i really wanted, was to compile a collection of "idioms" that would enlarge the readers perception of what is possible in Haskell and how to go about it. so, i'll have to find a name that reflects this plan. —--J. Ahlmann 14:13, 2 March 2006 (UTC)
List / String Operations
Should this:
transpose . unfoldr (\a -> toMaybe (null a) (splitAt 2 a))
be this instead:
transpose . unfoldr (\a -> toMaybe (not $ null a) (splitAt 2 a))
Polynomial signum and abs
A sensible option for signum and abs for polynomials (with coefficients from a field) would be
signum -> the leading coefficient abs -> the monic polynomial obtained by dividing by the leading coefficient
As with Integer and Data.Complex's abs and signum, the result of signum is then a unit (ie, a value x for which there exists a y such that xy = 1), and we have
signum a * abs a = a abs 1 = signum 1 = 1 abs (any unit) = 1 abs a * abs b = abs (a * b)