Почему код строки
generateScripts pb = (greet <$>) <$> (maybeName <$> pb
есть дополнительный функтор после greet
? Исходя из моего понимания, я знаю, что функция LHS будет использоваться в RHS, но, поскольку есть дополнительный функтор, я не понимаю, как он работает.
maybeName :: (String, String) -> Maybe String
maybeName p = if length (snd p) == 10 then Just (fst p) else Nothing
generateScripts :: [(String, String)] -> [Maybe String]
generateScripts pb = (greet <$>) <$> (maybeName <$> pb)
where greet = ("Hello "++)
phonebook = [ ("Bob", "0178866524"), ("Fred", "01624556442"), ("Alice", "0188998533") ]
GHCi> phonebook = [ ("Bob", "0178866524"), ("Fred", "01624556442"), ("Alice", "0188998533") ]
GHCi> generateScripts phonebook
[Just "Hello Bob",Nothing,Just "Hello Alice"]