Я создал список частично примененных функций в моем REPL следующим образом:
listOfPartiallyAppliedFunctions = map (*) [1..100]
Затем я хотел бы создать список результатов после завершения применения функции, что я легко могу сделать, предоставив лямбда-функцию для функции карты следующим образом:
let results = map (\x -> x 4) listOfPartiallyAppliedFunctions
Что в основном означает отображение функции x, примененной к 4, по списку частично примененных функций, где x - каждая частично примененная функция из списка.
Однако я подумал, что из этого следует, что я мог написать:
let results = map (4) listOfPartiallyAppliedFunctions
Поскольку не должно быть необходимости предоставлять лямбду для функции карты, поскольку следует знать, что нужно применять 4 к частично примененным функциям, содержащимся в listOfPartiallyAppliedFunctions
.
Однако я получаю эту ошибку:
• Non type-variable argument in the constraint: Num ((a -> a) -> b)
(Use FlexibleContexts to permit this)
• When checking the inferred type
it :: forall a b. (Num a, Num ((a -> a) -> b), Enum a) => [b]
Может кто-нибудь помочь мне разобрать эту ошибку? Я думал, 4
был экземпляром конструктора типа Num?