[Haskell-beginners] numerical integration over lists

Henk-Jan van Tuyl hjgtuyl at chello.nl
Sun Feb 5 14:40:21 CET 2012


On Sun, 05 Feb 2012 09:19:02 +0100, Thomas Engel <thomas.engel1 at gmx.net>  
wrote:

> Hello,
>
> I have two list (one with x values, the other with y values)
> What I want to do is a numercial integration according the following  
> formula:
>
> Result x2 = Result x1 + ((y(x1) + y(x2))/2) * (x2 -x1)
>
> and put the result in another list.
>
> below my first try:
>
> integriereListe::(a)->(a)->(a)
> integriereListe [][]  = [0.0]
> integriereListe (x:xs) (y:ys)   = ((y - y2) /2) * (x2 -x)
>                                   where
>                                   x2 = head xs
>                                   y2 = head ys

The line
> integriereListe [][]  = [0.0]
should be
> integriereListe [][]  = 0.0
as the line below that calculates a number, not a list of numbers (that  
is, the type is different for that line).
You than need to correct the type of the function. Note, that you use  
'head' twice for lists that are empty at a certain point.

Regards,
Henk-Jan van Tuyl


-- 
http://Van.Tuyl.eu/
http://members.chello.nl/hjgtuyl/tourdemonad.html
Haskell programming
--



More information about the Beginners mailing list