Я пытаюсь научить себя Haskell. Я создаю модуль, который будет обрабатывать записи оценок учащихся. Для начала я хочу, чтобы функция принимала два списка (имена учеников и оценки) и превращала их в список кортежей [(Имя, Оценка)]
У меня есть это:
module StudentGrades (
enterGrades
) where
enterGrades :: [String] -> [Double] -> [(String,Double)]
enterGrades [] [] = []
enterGrades [[names]] [grades] = zip [[names]] [grades]
Он прекрасно компилируется, но когда я пытаюсь запустить функцию, набрав enterGrades ["Ann", "Dan"] [3, 4]
, выдает ошибку:
*StudentGrades> enterGrades ["Ann", "Dan"] [3, 4]
*** Exception: question4.hs:(11,5)-(12,59): Non-exhaustive patterns in function enterGrades
*StudentGrades>
В то же время, ввод zip ["Ann", "Dan"] [3, 4]
в терминале Prelude работает нормально и возвращает [("Ann",3),("Dan",4)]
Я не понимаю, почему. Пожалуйста помоги! Спасибо.