Рубрика «haskell» - 22

На хабре уже были статьи про продолжения и монаду ContT. Я решил поделиться своим пониманием этого вопроса и снабдить его соответствующими иллюстрациями. В отличие от приведенной выше статьи, мне бы хотелось больше внимания уделить внутреннему устройству монады ContT и разобраться, как же она работает.
Читать полностью »

Haskell один из быстроразвивающихся функциональных языков программирования. Возможно это один из тех функциональных языков которому вы хотите отдать предпочтение практического использования в ближайшее время.

Этот топик для тех, кто хотел бы опробовать Haskell на деле, но имеет горы полезного C и C++ кода с которым требуется считаться.Читать полностью »

Приветствую.

Уж не знаю, как так вышло, но игрался я на досуге с лямбда-выражениями в С++11 (о которых, к слову, я уже писал статью, снискавшую пару лет назад на удивление достаточно неплохую популярность), и под наркотическим воздействием впечатлением от языка Haskell начал разбираться с такими понятиями, как частичное применение и каррирование в контексте языка С++. И для начала, пожалуй, неплохо бы нам определиться с этими терминами.

Читать полностью »

Доброго времени суток, уважаемый читатель!

Прочитав несколько книг по типизированном лямбда исчисление, а именно по зависимым типам, увидел интересную закономерность: везде первым примером приводится определение типа «отсортированный список». Все бы хорошо, но дальше этого определения ничего не было. Вот я и придумал восполнить этот пробел и реализовать функцию, принимающую список, и возвращающую другой список и два доказательства. Одно доказывает, что результат — это перестановка входа, а другое доказывает, что результат — отсортированный список.
Читать полностью »

Поиск кратчайшего расстояния между точками в трёхмерном пространствеСтавший уже традиционным ежемесячный конкурс по функциональному программированию в июне сего года собрал пока наибольшее количество участников с момента запуска оных конкурсов. Не знаю, что послужило причиной этого, но факт остаётся фактом — в конкурсе приняло участие 35 человек, представивших 36 решений, из которых большиинство было на языке Haskell (7 решений) и C++ (6 решений). Другими использованными языками программирования были: Assembler, C, C#, Clojure, D2, Erlang, F#, Java, Nemerle, OCaml, Perl, Python и Scala. И это очень приятно, что имеет место такая диверсификация языков и подходов.

Ну а в качестве задачи была предложена такая формулировка одной из традиционных задач для олимпиад по программированию:

Демиург задумал поместить новую разумную расу на планету во Вселенной так, чтобы она как можно быстрее освоила весь доступный космос. Для этих целей он собрал перечень всех планет, находящихся в поясе Златовласки, после чего решил найти среди них две, наиболее близко расположенные друг к другу. Разумная раса должна быть расположена на одной из таких планет. Это, по замыслу Демиурга, позволит максимально быстро обеспечить освоение космоса. Помогите Демиургу найти две планеты, находящиеся на наименьшем расстоянии друг от друга.

Как видно, это обычная задача на поиск минимального расстояния между точками в пространстве, однако сложность была увеличена тем, что пространство внезапно стало трёхмерным, в то время как в традиционном условии пространство двумерно. Но это нисколько не испугало конкурсантов, хотя и внесло в исходные коды для решения некоторые изменения известного алгоритма.

Читать полностью »

Всего несколько часов назад начался конкурс ICFPC-2012, который продлится все выходные. Я решил перевести задачу для этого конкурса в надежде, что кто-то из заинтересовавшихся людей успеет принять участие.

Задача вполне понятная, так что дерзайте.

Шахты с лямбдами обнаружены в Шотландии! Ваша задача — прочитав карту шахты суметь составить программу для робота.
Читать полностью »

Встреча FProg 2012 07 в Петербурге
В четверг, 12 июля 2012 года в 19:00 в петербургском офисе компании Яндекс при поддержке компании JetBrains и журнала «Практика функционального программирования» пройдёт очередная встреча FProg. Встреча состоится накануне программистского конкурса ICFP Contest 2012.

Обязательная запись на встречу для доступа в офис осуществляется на странице встречи через Twitter-аккаунт.

Темы докладов:

  • Евгений Котельников. Зависимые типы в Haskell
  • Ян Малаховски. Введение в Agda
  • Андрей Власовских. Команда spb-archlinux на ICFP Contest 2009

Читать полностью »

Предупреждение: если у вас есть претензии к бенчмарку и/или к коду, бенчмарк выложен на Гитхабе, что позволяет вам править баги самим или сообщить о багах автору.

Подробнее о проблеме 1000 соединений: ru.wikipedia.org/wiki/Проблема_10000_соединений

Как с проблемой 1000 соединений через вебсокеты справятся Erlang, Go, Haskell (Snap), Java (Webbit), Node.js (websocket) и Pythin (ws4py)?

Читать полностью »

Предупреждение: если у вас есть претензии к бенчмарку и/или к коду, бенчмарк выложен на Гитхабе, что позволяет вам править баги самим или сообщить о багах автору.

Подробнее о проблеме 10000 соединений: ru.wikipedia.org/wiki/Проблема_10000_соединений

Как с проблемой 10000 соединений через вебсокеты справятся Erlang, Go, Haskell (Snap), Java (Webbit), Node.js (websocket) и Pythin (ws4py)?

Читать полностью »

(Перевод)

Последние несколько лет я провел в изучении и экспериментах со многими языками программирования. В частности, я начал использовать Scala как основной язык, стараюсь использовать функциональный стиль везде где это возможно. Меня также весьма заинтересовал Haskell (чистый функциональный язык) и Clojure (современный диалект Лиспа).

Таким образом, я постепенно отказываюсь от объектно-ориентированной парадигмы, несмотря на то, что использовал в основном её последние 17 лет моей профессиональной деятельности. У меня появляется чувство, что объекты это то, что мешает нам писать лапидарный, структурированный и повторно используемый код.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js