НА: НА: [haskell-russian] НеÐ�ного вопросов

38 views
Skip to first unread message

dark...@gmail.com

unread,
Jun 12, 2014, 12:33:25 PM6/12/14
to haskell...@googlegroups.com
Можно и так. Тогда тип CoordSys должен быть перечислением, а функция transform определённым образом зависеть от двух значений - исходного и целевого.

Но мы сейчас на основании неполной информации пытаемся нагородить нечто универсальное. А я чую, что есть какая-то очень конкретная задача, для решения которой всё очень просто можно определить. Скорее всего, потребуются классы, да и то не факт.

От: Alexander V Vershilov
Отправлено: ‎12.‎06.‎2014 20:19
Кому: haskell...@googlegroups.com
Тема: Re: НА: [haskell-russian] Немного вопросов

Скорее уж data Point CoordSys a, поскольку a это тип координат, а тип должен параметризоваться типом сетки, или как предлагал Евгений вводить свой тип точки для каждой сетки

On Jun 12, 2014 8:17 PM, <dark...@gmail.com> wrote:
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 where
fmap 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.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
Вы получили это сообщение, поскольку подписаны на группу "Русский 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.

--
Вы получили это сообщение, поскольку подписаны на группу "Русский Haskell".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес haskell-russi...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес haskell...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/haskell-russian/CAO-1Pb6-GiKKtjfX%2BPeGg4Uh_zdwdVwinbOhhnH0z2zpPwYpdw%40mail.gmail.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Alexander V Vershilov

unread,
Jun 12, 2014, 2:48:36 PM6/12/14
to haskell...@googlegroups.com

Ну что вы, я позволяют человеку наслаждаться 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.

Евгений Золотарёв

unread,
Jun 12, 2014, 5:00:07 PM6/12/14
to haskell...@googlegroups.com
Имеются координаты: геодезические(широта и долгота) и плоские(х, у). Функции: f(x, y) для преобразования из х,у в широту, f(y) - из у находим долготу. Ну и , соответственно, есть функции для обратного преобразования. Проблема в том что сделано это на уровне: берем два числа, подразумевая под ними точку, затем умножаем, делим, складываем как нам предписывает функция для перевода и получаем два других числа, подразумевая под ними уже другую точку. 

Я хочу научиться работать именно с точками, а не с парой чисел. Вот. 

Arthur Welf

unread,
Jun 14, 2014, 5:35:15 AM6/14/14
to haskell...@googlegroups.com
Лучше всего посмотреть в исходниках существующих библиотек для работы с геокоординатами. Вот, например: 



-- 
Best regards,
Arthur Welf

пятница, 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.
Reply all
Reply to author
Forward
0 new messages