Polynôme d'interpolation de Newton

Voici une proposition de squelette des 5 « one liners » à rendre avant vendredi 28 février 08 h 02... On pourra utiliser les fonctions suivantes:





Haskell
-- Calcule la liste des différences 2 à 2 d'une liste de nbs [1,3,6] -> [2,3]
reduitL :: Num a => [a] -> [a]
reduitL liste = zipWith ????
 
-- Renvoie la liste des listes de différences : le triangle de Newton 
reduit :: (Eq a, Num a) => [a] -> [[a]]
reduit liste = takeWhile ????
 
-- Renvoie la tête du triangle de Newton
diffNewton :: Num a => [a] -> [a]
diffNewton liste = map ????
 
--  Renvoie la liste des évaluations des (x-x0)(x-x0-1).../n! du théorème 2.6 accumulées dans une liste
baseNewton :: (Enum a, Fractional a) => a -> a -> a -> [a]
baseNewton x0 x n = scanl (\ acc k -> ???? ) 1 [1 .. n]
 
-- renvoie l'évaluation du poly de Newton en x en partant de x0 avec une liste de valeurs
-- l'incrément des abscisses est 1 
interpol :: (Enum a, Eq a, Fractional a) => [a] -> a -> a -> a
interpol liste x0 x = ????

courtesy of webmatter.de