# Difference between revisions of "Talk:Blow your mind"

(→Polynomial signum and abs: new section) |
(→Polynomial signum and abs) |
||

Line 1: | Line 1: | ||

− | |||

==Name?== |
==Name?== |
||

Line 20: | Line 19: | ||

A sensible option for signum and abs for polynomials (with coefficients from a field) would be |
A sensible option for signum and abs for polynomials (with coefficients from a field) would be |
||

− | signum -> the leading coefficient |
+ | * signum -> the leading coefficient |

− | abs -> the monic polynomial obtained by dividing by 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 |
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 |
+ | * signum a * abs a = a |

− | abs 1 = signum 1 = 1 |
+ | * abs 1 = signum 1 = 1 |

− | abs (any unit) = 1 |
+ | * abs (any unit) = 1 |

− | abs a * abs b = abs (a * b) |
+ | * abs a * abs b = abs (a * b) |

## Revision as of 21:04, 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)