войти зарегистрироваться

Haskellрепостинг Twitter (или rss) в статус vkontakte.ru на Haskell

В данной статье речь пойдёт о небольшой программке, которая репостит твиты в статус во вконтакте.
Задача довольно простая и совершенно неоригинальная. Началось всё с того, что я прочитал статью на Хабре о том, как это решается на python'е и аналогичную статью про php. В интернетах вроде бы даже какие-то онлайн сервисы есть специально для этой задачи. Но тут весь цимус в том, чтобы решить эту несложную задачу самому, используя свои любимые инструменты. Собственно решение на php появилось позже и с такой же целью.

Ну и на чём же писал я? На haskell, natürlich!
Дальше подробно расскажу о том, как я всё сделал и как это повторить. Никаких особых знаний для понимания, пожалуй, не требуется.

HaskellОбъяснение ввода-вывода в Haskell без монад

Эта статья объясняет, как выполнять ввод и вывод в Haskell, не пытаясь дать никакого понимания о монадах в целом. Мы начнём с простейшего примера, а затем постепенно перейдём к более сложным. Вы можете дочитать статью до конца, а можете остановиться после любого раздела: каждый последующий раздел позволит вам справиться с новыми задачами. Мы предполагаем знакомство с основами Haskell, в объёме глав с 1 по 6 книги «Programming in Haskell» Грэма Хаттона. [Прим. переводчика: главы «Введение», «Первые шаги», «Типы и классы», «Определение функций», «Выборки из списков», «Рекурсивные функции»]

HaskellКомбинатор неподвижной точки

Когда мне впервые задали вопрос о том может ли существовать функция вида Func<Func<T,T>,T> без использования конструкций вида default(T) он поверг меня в глубокий когнитивный диссонанс.
Как может существовать функция у которой неоткуда взять значения? Об очевидном варианте
T Fix<T>(Func<T,T> func){
   return func(Fix(func));
}
я не мог даже подумать. Разве возможно делать такие функции? Она будет вызываться бесконечно и не даст результата. В языках типа C# такая конструкция и правда вызовет зацикливание, но вполне может работать в языках вроде питона или хаскеля. Сейчас будет немного кода на Haskell, надеюсь синтаксис будет более-менее понятен всем.

Erlang/OTPУскоряем работу Erlang системы без замедления разработки

Недавно появилась возможность использовать С для написания модулей Erlang систем (это по-моему удобнее любого из предложенных здесь методов). Возможно вы не знали о возможности использовать Haskell в связке с Erlang. Haskell очевидно не панацея и действительно критические участки кода вероятно всё равно придётся переписывать на С, но Haskell предлагает строгую типизацию и сокращение обьёма кода по сравнению с С. Я думаю что проще переписывать код с Erlang на Haskell чем на С, потому что оба языка функциоанльные. Haskell быстрее Erlang благодаря статической типизации и умной системе выведения типов. Предлагаю вашему вниманию вольный перевод статьи о Haskell/Erlang-FFI.

RubyМост Руби ⇋ Хаскелль

Вы — Руби-разработчик? После серии статей (1,2,3) про Хаскелль у вас появилось новое хобби? Вы бы хотели использовать это кунг-фу в своём коде? Нет?