[#] Проблемы, вызванные определением кортежей как функторов
habrabot(difrex,1) — All
2015-06-01 20:00:02


Очень удивительно (я бы даже сказал — внезапно!), но кортеж-пара в GHC является функтором. Это сложно понять, ведь функтор должен иметь только один параметр, а у пары их два. Можно восхищаться тем, как разработчики стандартной библиотеки GHC умудрились предоставить такую абстракцию, но мне кажется, полученное решение все же следует признать неудачным. Начнем с того, что оно интуитивно непонятно. Скажем, попробуйте вычислить вручную, не используя инструментов GHC, выражение ``(1+) `fmap` (2, 3)``. А после этого проверьте полученный результат, например, в `ghci`. У многих ли результат ручного вычисления совпал с тем, который выдала система? И если у вас результаты все же совпали, мне очень хотелось бы услышать хорошее объяснение того, как именно вам это удалось. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/259275/#habracut