Доброго времени суток
Вопрос по обобщённому программированию в Haskell (возможно, не только, но возник именно в нём). Задача : обобщить стандартную функцию map на функторы с произвольным количеством аргументов
-- стандартный map
map :: (a -> b) -> [a] -> [b]
-- двухаргументный map
map2 :: (a -> a -> b) -> [a] -> [b]
например реализующий попарное суммирование элементов списка :
map2 (\x y -> x + y) [1, 2, 3] = [3, 5]
Задача : реализовать mapn. Стандартный Haskell (Haskell-98) не позволяет обобщить определение map подобным образом. Generic Haskell позволяет обобщить map на произвольный тип (не только список) :
map :: (a -> b) -> d a -> d b
но вот по количеству аргументов никакой документации у них нет. На #haskell @ FreeNode меня отправили смотреть Template Haskell, но, несмотря на наличие некоторого количества примеров, осиливаю его с трудом
Соответственно и вопрос : сталкивался кто-либо с данной задачей, есть ли мысли о решении, есть ли информация о методах/библиотеках для решения подобных задач. Так же было бы интересно услышать о возможностях решения на других ЯП (например, я могу решить эту задачу на Tcl, хотя и не лучшим образом, и вообще не могу на C++) - очевидно, что на CL она должна решаться элементарно, если кто-то сталкивался с Meta OCaml/Nemerle, было бы интересно услышать и их мнение
Заранее спасибо
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от jtootf
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от jtootf
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [Java] Generic (2009)
- Форум haskell: (&) (2019)
- Форум Haskell (2020)
- Форум Haskell (2009)
- Форум Haskell (2008)