[Haskell-cafe] Confused about types

Henning Thielemann lemming at henning-thielemann.de
Wed Oct 5 10:42:51 EDT 2005

On Fri, 30 Sep 2005, Lanny Ripple wrote:

> newton_h, next_x_h, dy_h :: (Fractional a, Ord a) => (a -> a) ->
> a -> a -> a
> newton_h f x h = until ((<= h) . abs . f) (next_x_h f h) x

 If this shall be more than a disposable example, I suggest to separate
the Newton iteration from the abort of the iteration. Newton's method
could return a list of the interim results, a sequence in the mathematical
  newton :: Fractional a => (a -> (a,a)) -> a -> [a]
 The function would compute both the value and the derivative,
  e.g. (\x -> (sin x, cos x))

 Then you can easily apply various implementations of a numeric limit.
  limit :: [a] -> a
   The most simple implementation is certainly: limit = (!!100)

 Eventually a function
  numericDiff :: Fractional a => a -> (a -> a) -> (a -> (a,a))
   could extend a function by some difference quotient.

More information about the Haskell-Cafe mailing list