Скорее уж data Point CoordSys a, поскольку a это тип координат, а тип должен параметризоваться типом сетки, или как предлагал Евгений вводить свой тип точки для каждой сетки
--data Point a = Point a a
transform :: Point a -> Point b
И это не fmap функтора, поскольку значение каждой координаты преобразованной точки может зависеть от обеих координат исходной точки.
От: Евгений Золотарёв
Отправлено: 12.06.2014 20:07
Кому: haskell...@googlegroups.com
Тема: Re: [haskell-russian] Немного вопросовПреобразование точек из одной координатной системы в другую.--
четверг, 12 июня 2014 г., 19:42:18 UTC+4 пользователь Dark Magus написал:Опишите, какую задачу Вы хотите решить?
От: Евгений Золотарёв
Отправлено: 12.06.2014 18:55
Кому: haskell...@googlegroups.com
Тема: Re: [haskell-russian] Немного вопросовПоподробнее про идиомы можно?--
12 июня 2014 г., 18:48 пользователь <dark...@gmail.com> написал:
Думаю, что буду банален, но не могу не выразить эту простую мысль. Программируя в функциональном программировании, используйте идиомы функционального программирования.
От: Евгений Золотарёв
Отправлено: 12.06.2014 18:09
Кому: haskell...@googlegroups.com
Тема: [haskell-russian] Немного вопросов1)Есть типы:data GeoPoint a = GeoPoint {px, py :: a}data PlskPoint a = PlskPoint {px, py :: a}Есть ли смысл описать один тип data Point a = Point {px, py :: a}, а затем создавать экземпляры и уже работать с ними?Чтобы можно было использовать функцию вида f :: GeoPoint -> PlskPoint, соответственно свой Show для каждого типа.На мой взгляд так правильнее чтоли.2) Я понимаю, что это противоречит идее функтора, но возможно ли вinstance Functor Point wherefmap f (Point a b) = Point (f a) (f b)f применять только к а?--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/0ca7094d-4f6a-4dab-94e2-9fe2988ecb24%40googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/5399be1f.67ad700a.646e.ffffdc0e%40mx.google.com.
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/CAOJLPV6_CBt8HEEThULoYnT%2BOiLqZvdVRqjXAuDfpfS1H3nCbA%40mail.gmail.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/5e55b54f-0c2f-4a22-ba70-a0e6afbf84af%40googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/5399d286.eb2c700a.63f7.ffffe0c2%40mx.google.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Ну что вы, я позволяют человеку наслаждаться X-Y проблемой [1] в полной мере. Потихоньку пытаясь выдавать полезные концепции, которые могут когда-нибудь пригодиться.
[1] http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/5399d651.aba4700a.457b.ffffe5d2%40mx.google.com.
пятница, 13 июня 2014 г. в 0:00, Евгений Золотарёв написал:
Имеются координаты: геодезические(широта и долгота) и плоские(х, у). Функции: f(x, y) для преобразования из х,у в широту, f(y) - из у находим долготу. Ну и , соответственно, есть функции для обратного преобразования. Проблема в том что сделано это на уровне: берем два числа, подразумевая под ними точку, затем умножаем, делим, складываем как нам предписывает функция для перевода и получаем два других числа, подразумевая под ними уже другую точку.Я хочу научиться работать именно с точками, а не с парой чисел. Вот.
--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/2a12e00f-0373-4521-8383-83db299e1d7d%40googlegroups.com.