Talk:Blow your mind

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


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 the abs and signum functions for Integer and for Data.Complex (when restricted to a subring whose intersection with the real numbers is just the integers), the result of this 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)

Polynomial negate

Why not:

negate = map negate