deniok: (Рыжий)
deniok ([personal profile] deniok) wrote2016-01-17 01:19 am

Королевский экзамен в Зазеркалье

Маленький хаскеллист попал в Зазеркалье и, преодолев неисчислимые препятствия, дошел до последней горизонтали. Белая и Черная Королевы говорят, что для того, чтобы стать SPJ, ему нужно пройти «Королевский экзамен», ответив на Черный и Белый вопросы: всякий ли Functor является Rotcnuf? всякий ли Rotcnuf является Functor?
class Rotcnuf f where
  mfap :: f (a -> b) -> a -> f b

Помогите маленькому хаскеллисту стать SPJ.

[identity profile] deni-ok.livejournal.com 2016-02-07 10:37 pm (UTC)(link)
Только ровно наоборот: любой Functor это Rotcnuf. По fmap мы, как верно замечено, можем универсально построить mfap, это и обеспечивает дефолтный инстанс Rotcnuf для любого функтора. А пример Rotcnuf'а, не являющегося функтором, [livejournal.com profile] migmit в предыдущем комменте привел.