Небольшое обновление для SublimeHaskell.
Картинка для затравки, список изменений под катом
Читать полностью »
Рубрика «haskell» - 18
Обновлен SublimeHaskell
2013-03-17 в 11:42, admin, рубрики: haskell, sublime text 3, метки: haskell, sublime text 3, sublime-text-2Принципы быстрого Хаскеля под GHC
2013-03-05 в 8:21, admin, рубрики: ghc, haskell, LLVM, yarr, абстрактное синтаксическое дерево, высокая производительность, каррирование, Компиляторы, ленивые вычисления, метки: ghc, LLVM, yarr, абстрактное синтаксическое дерево, каррирование, ленивые вычисленияGHC (Glasgow Haskell Compiler) — стандартный компилятор Хаскеля. GHC — один из самых крутых компиляторов в мире, но к сожалению без дополнительных телодвижений скомпилированные им программы по скорости больше напоминают интерпретируемые, т. е. работают очень медленно. Однако если раскрыть весь потенциал компилятора, Хаскель приближается по производительности к аналогичному коду на C.
В этой статье я обобщаю опыт выжимания максимума из GHC при создании dataflow-фреймворка Yarr.
Читать полностью »
Yarr — dataflow-фреймворк (обработки изображений) на Хаскеле
2013-03-05 в 8:21, admin, рубрики: ghc, haskell, LLVM, repa, yarr, абстрактное синтаксическое дерево, конвейер, обобщённое программирование, обработка изображений, параллельное программирование, процессор, Эквализация, метки: ghc, LLVM, repa, yarr, абстрактное синтаксическое дерево, конвейер, обобщённое программирование, процессор, Эквализация
Зондирование обстановки на Реддите показало, что едва ли хоть кто-то всерьез занимается обработкой изображений на Хаскеле, несмотря на то, что достаточно популярная библиотека Repa предполагает работу с изображениями как одно из основных приложений. Надеюсь, ситуацию сможет изменить библиотека Yarr (документация, гитхаб).
Я называю библиотеку dataflow-фреймворком, потому что она обобщена для обработки массивов (от одномерных до трехмерных) элементов любых типов, в том числе векторов чисел, например координат, комплексных чисел. Но основное предполагаемое применение — обработка двумерных массивов из векторов цветовых компонент, т. е. изображений. Фреймворк непосредственно не содержит алгоритмов обработки изображений, а предоставляет мощную инфраструктуру для их написания.
Читать полностью »
Игра в «кошки — мышки», поиск минимальной стратегии
2013-02-19 в 3:20, admin, рубрики: haskell, игра, я пиарюсь, метки: haskell, играНаступил 2013 год, и мы успешно провели первый в этом году конкурс по функциональному программированию под эгидой ФП(ФП). В 2013 году конкурсы стартуют всё так же традиционно на первой длинной неделе месяца, но уже не каждого, а один раз в два месяца. Так что в 2013 году запланировано проведение шести конкурсов по ФП: в феврале (который мы сегодня и опишем), в апреле, в июне, в августе, в октябре и в декабре.
Задачу на февральский конкурс подготовил наш добрый коллега Александр Лебедев, за что ему низкий поклон, всяческие благодарности и занесение имени в Скрижали Славы ФП(ФП). Задача была из серии игр один-на-один, которую мы назвали «кошки — мышки»:
Есть ящик, состоящий из пяти ячеек, последовательно соединённых друг с другом, то есть у каждой ячейки ровно две соседние, кроме крайних, у которых по одной соседней (другими словами, ящик — это линия из пяти сегментов). В какой-то ячейке сидит мышь, и кошка не знает, в какой именно. Игра состоит из набора ходов до победы кошки. Один ход в игре описывается двумя полуходами:
- Кошка кладёт лапу на какую-то ячейку ящика. Если под лапой оказывается мышь, то игра окончена, и кошка победила.
- Если кошка не положила лапу на ячейку с мышью, то мышь перебегает в соседнюю ячейку (даже может перебежать в ту ячейку, на которую кошка клала лапу). В какую именно, кошка не знает.
Задача: написать программу, которая рассчитывает для кошки победную стратегию, и желательно содержащую наименьшее число ходов.
Если кому-то интересна реализация решения этой задачи на языке Haskell, то добро пожаловать под кат.
Здравствуй, дорогой читатель!
Cегодня мы поговорим о полиморфизме функций и о классах в языке Haskell, как их использовать и для чего они нужны. Все мы использовали метод полиморфизма, например, в языке Java. А как это можно применить к Haskell? Haskell не является объектно-ориентированным языком, но в нём всё же присутствуют классы. Хотя классы в Haskell и имеют некоторые свойства классов объектно-ориентированных языков, они более абстрагированы и от этого намного мощнее. Проводя аналогию с языком Java дальше, классы в Haskell являются ничем другим как интерфейсы — в класс записываются лишь декларации функций, а сами реализации этих функций будут сделаны позже.
Хочется выразить благодарность пользователю Darkus за прочтение и исправление всех недочётов и неточностей в статье, а также за дельные советы и помощь в написании.
Читать полностью »
Дайджест интересных новостей и материалов из мира PHP за последние две недели №9 (12.01.2013 — 25.01.2013)
2013-01-25 в 20:17, admin, рубрики: haskell, laravel, node.js, PDO, php, PSR, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: haskell, laravel, node.js, PDO, PHP, PSR, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »
Анонс школы функционального программирования в рамках DevCon 2013
2013-01-24 в 7:41, admin, рубрики: devcon, haskell, Блог компании Microsoft, конференции, разработка, функциональное программирование, метки: devcon, haskell, конференции, функциональное программированиеУважаемые разработчики и специалисты по разработке ПО! От лица команды конференции DevCon 2013 я с удовольствием анонсирую в рамках конференции проведение “Школы функционального программирования”.
Не знакомы с функциональным программированием, но всегда хотели набраться знаний? Знакомы, но хотите углубить знания? Знаете хорошо и вам интересен хардкор? Для всех для вас на конференции пройдет школа функционального программирования, в рамках которой, лучшие эксперты страны прочитают ряд лекций по функциональному программированию от самых азов до глубоких методов и приемов.
Цель школы
Познакомить участников конференции с парадигмой функционального программирования и языками функционального программирования (F#, Haskell и другие), показать удобство применения языков ФП для решения практических задач в области параллельного, асинхронного, облачного и веб-программирования и работы с большими объемами распределенных данных.
В рамках Школы функционального программирования участники конференции смогут:
- Познакомиться с парадигмой функционального программирования и понять, как можно программировать «по другому», без переменных, оператора присваивания и побочных эффектов
- Оценить преимущества языков программирования (F#, Haskell и других) для решения задач параллельного, асинхронного, облачного и веб-программирования и для обработки больших распределенных данных
- Поговорить о развитой системе типизации в функциональных языках и об использовании функционального подхода в программировании на C#
Ведущие школы читали курсы функционального программирования в ведущих российских университетах, и они готовы научить вас самому важному за несколько часов.
Успешно сдавшие выпускной экзамен получат отличительные знаки об окончании школы и возможность участвовать в итоговой чайной церемонии.
Читать полностью »
Решение турнирных задач на языке Haskell
2013-01-23 в 9:26, admin, рубрики: codeforces, functional programming, haskell, tutorial, Программирование, функциональное программирование, хаскель, метки: codeforces, functional programming, haskell, tutorial, функциональное программирование, хаскель Доброго времени суток всем хабражителям
Перед вами статья, посвященная довольно известному, но не сильно популярному языку Haskell. В ней мне хочется показать пример решения простой турнирной задачи на языке Haskell. Надеюсь, что эта статья поможет начинающим программистам на Хаскеле сделать первые шаги к написанию полноценной программы.
Играем в Haskell
2013-01-13 в 18:42, admin, рубрики: functional programming, haskell, Программирование, функциональное программирование, хаскель
Я замечательно провел время изучая Haskell последние месяцы, и мне кажется, что сделать первые шаги в этом занятии сложнее, чем это могло бы быть на самом деле. Мне повезло работать в нужное время и в нужном месте, и в Facebook я прошел курс по Haskell от Bryan O'Sullivan, но Вы определенно сможете влиться в тему и без чужой помощи. Для этого можно поиграть в Haskell на сайте Try Haskell, а в конечном счете установить себе GHC.
Читать полностью »
Слабые ссылки в различных языках программирования
2012-12-25 в 14:11, admin, рубрики: c++, haskell, java, perl, python, ruby, Программирование, метки: c++, haskell, java, perl, python, ruby, Программирование В языках с автоматическим управлением памятью сборщик мусора удаляет объекты, когда они перестают быть доступными по ссылкам. Обычно это именно то, что нужно: объект существует, пока есть возможность к нему обратиться.
Иногда такое поведение не подходит. Например, программе понадобилось хранить некоторую вспомогательную информацию об экземплярах некоторого класса, но у вас нет возможности добавить в этот класс своё поле. В этом случае можно создать отображение, в котором ключом будет объект, а значением — вспомогательная информация.
Вот тут-то и начинаются проблемы. Поскольку отображение хранит ссылки на ключи, те объекты, к которым была привязана вспомогательная информация, перестают освобождаться из памяти. Если программа в процессе своей работы создаёт много объектов, память рано или поздно заканчивается.Читать полностью »