Привет, здесь есть специалисты по haskell?
Сам я пишу на C++ и привык читать инстанцирование класса, как «ConcreteObject - это SomeClass». Как мне показалось, в haskell так делать нельзя.
Спрошу на конкретном примере класса Functor:
class Functor f where
fmap :: (a -> b) -> f a -> f b
Инстанцирование для списка (как-то так)
instance Functor [] where
fmap = map
говорит о том что для типа [] определен функтор осуществляющий отображение стрелок над элементами списка в стрелки над списками
Правильно ли что запись instance Functor Something я должен читать, как - «для типа Something инстанцирован/описан/реализован Functor», но не «Something - это Functor»?
Статья http://en.wikibooks.org/wiki/Haskell/Applicative_Functors , к примеру, мне рвет шаблон высказываниями вида «apply functions inside the functor», «The most well-known functor is the list». Как могут быть корректны такие высказывания, если функтор - это отображение из категории в категорию?
Ну и почему в классе Functor описано отображение для стрелок, но не описано отображение для объектов (как pure из класса Applicative)?
haskell