Forward difference: Difference between revisions

Content added Content deleted
No edit summary
(→‎{{header|Haskell}}: Added type signatures, main. Minor tidying)
Line 1,222: Line 1,222:
=={{header|Haskell}}==
=={{header|Haskell}}==


<lang haskell>forwardDifference xs = zipWith (-) (tail xs) xs
<lang haskell>forwardDifference :: Num a => [a] -> [a]
forwardDifference = tail >>= zipWith (-)


nthForwardDifference xs n = iterate forwardDifference xs !! n
nthForwardDifference :: Num a => [a] -> Int -> [a]
nthForwardDifference = (!!) . iterate forwardDifference


main :: IO ()
> take 10 (iterate forwardDifference [90, 47, 58, 29, 22, 32, 55, 5, 55, 73])
main =
[[90,47,58,29,22,32,55,5,55,73],
mapM_ print $
[-43,11,-29,-7,10,23,-50,50,18],
take 10 (iterate forwardDifference [90, 47, 58, 29, 22, 32, 55, 5, 55, 73])</lang>
[54,-40,22,17,13,-73,100,-32],
{{Out}}
[-94,62,-5,-4,-86,173,-132],
<pre>[90,47,58,29,22,32,55,5,55,73]
[156,-67,1,-82,259,-305],
[-223,68,-83,341,-564],
[-43,11,-29,-7,10,23,-50,50,18]
[291,-151,424,-905],
[54,-40,22,17,13,-73,100,-32]
[-94,62,-5,-4,-86,173,-132]
[-442,575,-1329],
[156,-67,1,-82,259,-305]
[1017,-1904],
[-223,68,-83,341,-564]
[-2921]]</lang>
[291,-151,424,-905]
[-442,575,-1329]
[1017,-1904]
[-2921]</pre>


=={{header|HicEst}}==
=={{header|HicEst}}==