module Main where data Point a = Point {pointx :: Double, pointy :: Double} deriving Show instance Num (Point a) where (+) p1 p2 = Point (pointx p1 + pointx p2) (pointy p1 + pointy p2) increase :: Double -> Double -> Double increase p1 _ = p1 + 1 instance Functor Point where fmap f (Point(pointx, pointy)) = Point (f pointx, f pointy)
--Constructor `Point' should have 2 arguments, but has been given 1
-- In the pattern: Point (pointx, pointy)
-- In an equation for `fmap':
-- fmap f (Point (pointx, pointy)) = Point (f pointx, f pointy)
-- In the instance declaration for `Functor Point'
Что я делаю не так?
Все же стоит исправить тип данных, т.к. мономорфный тип не может быть функтором.
В принципе тут хорошо бы ознакомиться с какое-нибудь базовой книгой или блогами. Конечно их можно пересказать здесь, но такой путь улучшит ваше понимание.
--
С уважением, Александр
Может стоит исправить сам функтор?
--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/255f7f83-f6d9-4c95-919f-43939fc7f5f2%40googlegroups.com.
--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/c2013d4d-cb35-4d00-b16d-3079fb2de294%40googlegroups.com.