Мне нужно написать функцию в Haskell, которая суммирует элементы списка, пока некоторые определенные элементы не будут сохранены в другом списке.Haskell частичная сумма ошибки списка
Например, partial_add [1,2,3,4,5,6] [2,5] 0
должен вернуться [3,12,6]
.
Я достиг этого далеко:
partial_add [] _ count = []
partial_add (a:x) list count | elem a list = count:partial_add x list 0
| otherwise = partial_add x list count+a
(скорее всего, не работает должным образом)
Но когда я пытаюсь запустить функцию (он компилирует правильно) я получаю эту ошибку:
No instance for (Num [t0]) arising from a use of `it'
In a stmt of an interactive GHCi command: print it
Любая идея, что происходит?
Подсказка: выражение 'partial_add x list count + a' интерпретируется как' (partial_add x list count) + a' not 'partial_add x list (count + a)'. – Rufflewind
Hint2: Проверьте тип 'partial_add'. Затем попробуйте добавить правильную подпись типа самостоятельно. – Zeta
Спасибо всем!Мне нужно было объявить тип partial_add :: [Int] -> [Int] -> Int -> [Int] и добавить круглую скобку вокруг count + a – Panos