Посмотрите на тип map
. Это (a -> b) -> [a] -> [b]
. Это не похоже на ваш тип, который является [a] -> b. Это не карта, это сгиб.
Функция высшего порядка, которую вы хотите посмотреть, - foldr
. См. Hoogle .
Что-то вроде ...
htmlHAtendimento :: [HoraAtendimento] -> Html
htmlHAtendimento [] = toHtml ""
htmlHAtendimento l = foldr1 (+++) $ intersperse ", " $ map f l
where f (da, hia, hfa) = toHtml da
+++ "feira "
+++ show hia
+++ "h - "
+++ show hfa
+++ "h"
Я не знаю, правильно ли это, но это в правильном направлении.