import Data.Complex import Data.List import Data.List.Split import Control.Applicative makePolynominal :: String -> (Complex Float) -> (Complex Float) makePolynominal s z =sum $ getZipList $ (*) <$> ZipList (map (read . complexNotation) (splitOn "," s)) <*> ZipList (inftyVarList z) inftyVarList :: (Complex Float) -> [(Complex Float)] inftyVarList z = [z^n | n <- [0,1..]] complexNotation :: String -> String complexNotation s = if ':' `elem` s then s else s ++":+0.0"