Сегодня я хотел бы рассказать про ноябрьский конкурс по функциональному программированию, несмотря на то, что с момента его проведения уже прошло практически два месяца. Соорганизатором конкурса выступил наш уважаемый коллега Алексей Кишкин, который предложил задачу, реализовал её решение на нескольких языках программирования, а также подготовил некоторую вспомогательную инфраструктуру для проверки решений.
Задача на кункурс была вынесена крайне известная. Необходимо было решить банальную проблему раскраски карты, то есть поиска хроматического числа графа. Предполагалось, что конкурсанты представят на суд общественности общее решение, которое они проверяли на задаче раскраски карты России на уровне субъектов федерации. Ну и так вышло, что задача, несмотря на свою известность и давнишность, заинтересовала многих участников, так что на конкурс были присланы решения на многих языках программирования.
Ну а мы, как обычно, далее в этой краткой заметке мы рассмотрим решение указанной задачи на языке программирования Haskell. Впрочем, я сразу хочу оговориться — программа написана соорганизатором конкурса, который обычно пишет свои программы на языке OCaml, так что сегодня, как я ни старался, в определениях функций мы будем постоянно видеть торчащие верблюжьи уши OCaml'я :).
Читать полностью »