Это программа, которую я написал для добавления списка элементов, которые могут содержать как float, так и целое число. Кажется, что не работает вообще, и мой лектор так же бессовестен в этом, как и я, и я не могу найти подходящее решение для этого, попробовал перечислить список, однако большинство примеров используют прямые входы в программы GHC not IO(). Также пытается использовать HOF (функции более высокого порядка), как видно из функции «summ».Добавление элементов списка списка в haskell (не конкатенация, но добавление)
conc :: Num a => [[a]] -> [a]
conc [] = []
conc xss = [x | xs <- xss , x <- xs]
summ :: ([[a]] -> [a]) -> [[a]] ->[a]
summ [[f]] [[s]] = f (s)
summ (h : t) = h + summ t
summer :: IO()
summer = do
putStr "Enter a List of List (Int/Float): "
li <- getLine
let li = (read li) :: [[Float]]
let r = summ (conc li)
putStrLn "Sum of the list of lists is: " ++ r
Ваша функция 'summ' принимает разные количества аргументов, и в первом случае, по-видимому, требуется список списков функций и список списков значений? Напротив, строка типа ссылается на одну функцию (список списков значений) и список списков значений. Из-за несоответствий в определениях, похоже, вы пытаетесь заставить его делать сразу две совершенно разные вещи –