Вышла новая версия де-факто стандартного компилятора Haskell — GHC 8.2.1! Этот релиз является скорее итеративным улучшением, но вместе с тем имеет и ряд новых интересных фич, относящихся к удобству написания кода, выразительности языка и производительности скомпилированных программ. Рассмотрим же наиболее интересные, на мой взгляд, изменения!
Рубрика «haskell» - 8
Чёрная Лямбда ефрейтора Волкова: новое направление и гранты на летнюю школу
2017-07-21 в 12:43, admin, рубрики: haskell, алгебра везде, Блог компании Школа GoTo, дети наше будущее, инновации, информационная безопасность, летняя школа, Программирование, Промышленное программирование, функциональное программирование, чёрная лямбдаНе далее чем в июле прошла очередная школа GoTo. В этот раз мы решили внести некоторое разнообразие в стандартный набор Ардуин, Питонов, и прочих, и случился Хаскелль. Небольшое отделение из 6 юношей (кусочек нашего общего взвода в 60 человек) бодро промаршивало по -исчислению, основам синтаксиса, прошло посвящение в ФП написанием факториала, посворачивало списки, научилось словосочетанию "параметрически полиморфная функция высшего порядка" и присущему этому пониманию типов и тайпклассов под предводительством ефрейтора Волкова.
А ещё у нас были элементы инфобеза, криптовалюты, React Native, nix
, и, конечно, git
.
И мы начали писать книгу про Haskell.
В общем, получилось задорно.
(Под катом картинки участников, лямбды, илосос, анонс нового направления и гранты)
DevConf::BackEnd уже на этой неделе 17 июня в субботу, программа сформирована
2017-06-13 в 5:28, admin, рубрики: appmetrica, haskell, nginx, php, php7.1, telegram bots, vk.com api, yii framework, Анализ и проектирование систем, Блог компании DevConf, Разработка веб-сайтов, метки: php7.1
Приглашаем принять участие в DevConf::BackEnd в эту субботу, в центре внимания: PHP 7.1, слабости сетевого API в ядре Linux, чат-боты, живые видео-трансляции, системы обработки событий и haskel.
Открывает конференцию интересный доклад Валентина Бартенева — участника команды разработки Nginx. Он будет ругать линукс — точнее, сетевой API ядра для userland-приложений, и жаловаться на жизнь нелегкую, многопоточную мультиплексируемую.
Читать полностью »
Избегание ада с помощью монад
2017-05-23 в 6:18, admin, рубрики: haskell, monads, Программирование, функциональное программирование
Мы как программисты иногда попадаем в "программистский ад", место где наши обычные абстракции не справляются с решением ряда повторяющихся проблем.
В данной статье будут рассмотрены такие проблемы, синтаксические конструкции используемые для их решения и наконец как эти проблемы могут быть решены единообразно с помощью монад.
Ад проверки на null
Данная проблема возникает когда несколько частичных функций (функции которые могут не вернуть значение) нужно выполнить последовательно.
Такие функции обычно приводят в глубоко вложенному и сложно читаемому коду с чрезмерным количеством синтаксического шума.
var a = getData();
if (a != null) {
var b = getMoreData(a);
if (b != null) {
var c = getMoreData(b);
if (c != null) {
var d = getEvenMoreData(a, c)
if (d != null) {
print(d);
}
}
}
}
Как я "<" моноидом делал
2017-05-05 в 23:25, admin, рубрики: haskell, Занимательные задачки, математика, Программирование, функциональное программированиеНекоторое время назад в одном уютном камерном собрании я делал доклад о своей разработке — скриптовом лиспоподобном языке Liscript. Начал с азов — семантики вычисления списков, префиксной нотации… Дошел до произвольной арности стандартных операций:
+ 1 2 3
=> 6
— все интуитивно понятно, вопросов не возникает. Рассказываю про булевские значения, привожу пример
< 1 2
=> true
— тоже все понятно. И тут вопрос из зала: «а если 3 аргумента передать, как будет вычисляться?» Я решаю, что это хороший повод выпендриться умными терминами, и отвечаю: «точно так же — как свертка по моноиду» :) И тут же поправляясь — «хотя операция сравнения не является моноидом», пишу пример
< 1 2 3
=> true
< 1 2 3 4 1 2
=> false
Все так же интуитивно понятно, вопросов не возникает и продолжаем дальше (благоразумно оставляя без рассмотрения вычисления примитивных операций на одном аргументе и вообще при отсутствии оных, а также вычитание/деление и прочие немоноидальные операции :)). Успешно миновав в докладе подобных камней, через некоторое время я подумал — а можно ли как-то изловчиться, и все-таки сделать операцию сравнения моноидом (в каком-либо смысле)? И мне кажется, мне это удалось. Заинтересовавшихся темой прошу под кат.
Читать полностью »
Типизируя техническое интервью
2017-05-03 в 14:29, admin, рубрики: aphyr, haskell, Алгоритмы, перевод с английского, прекрасное, теория категорий, функциональное программирование, чёрная магия, метки: aphyrПредлагаю читателям "Хабрахабра" перевод статьи Kyle Kingsbury, a.k.a "Aphyr".
Ранее: Заклиная техническое интервью
В прежние времена, задолго до восхода Церкви, все заклятья произносились по чистому случаю, все действия были разрешены, а смерть была обыденностью. Многие ведьмы покалечились из-за своей магии, их находили изломанными в центре круга искривленных, застеклившихся деревьев и горящих камней, не гаснущих даже под водой; некоторые полностью исчезали, или начинали путешествовать по горным перевалам, никогда не касаясь ногами земли, никогда не согревая воздух своим дыханием.
Какие языки программирования популярны поздно вечером
2017-04-20 в 17:18, admin, рубрики: C, C#, haskell, javascript, python, stack overflow, Исследования и прогнозы в IT, киев, Москва
Stack Overflow опубликовал очередную подборку интересной статистики о языках программирования и привычках разработчиков. На этот раз они соотнесли статистику визитов на сайт по времени суток и языковые теги вопросов по этим визитам. Получилась интересная картина. Оказывается, некоторые языки более популярны в рабочее время (например, C# и JavaScript), а у других доля заметно растёт вечером (С, Python). Как будто программисты вечером возвращаются домой и занимаются, наконец, любимым делом.
Читать полностью »
Онлайн-курсы весеннего семестра от Академического университета и CS центра
2017-04-11 в 12:37, admin, рубрики: haskell, Алгоритмы, Блог компании СПБАУ, онлайн-курсы, операционные системы, Программирование, функциональное программированиеКоллекция онлайн-курсов, подготовленных преподавателями Академического университета (СПбАУ РАН) и Computer Science Center, насчитывает уже почти 20 бесплатных курсов по программированию и математике.
Все онлайн-курсы разработаны на платформе Stepik.org, их может проходить любой желающий. Количество курсов продолжает расти, и этой весной запускаются несколько новинок:
- Алгоритмы: теория и практика. Структуры данных (А. С. Куликов)
- Операционные системы (М.Ю. Кринкин)
- Функциональное программирование на языке Haskell (часть 2) (Д. Н. Москвин)
Что я изменил бы в Go
2017-03-30 в 9:01, admin, рубрики: Go, haskell, Rust, Блог компании Mail.Ru Group, высокая производительность, Компиляторы, никто не читает теги
В течение полугода я программировал преимущественно на Go. И я разочарован. По двум причинам:
- В Go особенно трудно придерживаться функциональной парадигмы. По сути, язык препятствует функциональному программированию. Меня это разочаровало, потому что в императивном коде, который я пишу, большое количество шаблонных кусков. К тому же, как мне кажется, в этом случае выше риск ошибок, в отличие от использования функциональных абстракций.
- Я считаю, что Go упускает свои шансы. В программных языках появились замечательные нововведения (особенно в сфере проверки и вывода типов — type inference), делающие код безопаснее, быстрее и чище. Мне хотелось бы, чтобы Google использовала своё влияние, чтобы поддержать некоторые из этих идей.
Я не первый, кто воспринимает Go подобным образом. Вот публикации других людей, разделяющих мои впечатления:
- Why Go Is Not Good
- Everyday hassles in Go
- Three Months of Go (from a Haskeller’s perspective)
- The Language I Wish Go Was
Ниже я добавлю свои соображения. Чтобы показать, как именно можно улучшить Go, я буду сравнивать его с Rust.
Пишу как хочу, или Все на встречу с ruHaskell в «Лаборатории Касперского»
2017-03-29 в 15:04, admin, рубрики: flux, haskell, kaspersky lab, Блог компании «Лаборатория Касперского»6 апреля 2017 «Лаборатория Касперского» и сообщество RuHaskell вновь будут рады видеть всех, кто считает Haskell лучшим языком на свете. На этой второй по счету встрече (на первой прошлогодней мы тоже говорили о магии типов Haskell и сравнивали его с C++) обсудим наш язык и его “коллег по цеху” в функциональной парадигме, поделимся опытом применения в решении прикладных задач бизнеса, поднимем наболевшие вопросы и наконец, просто пообщаемся.
В программе — много полезного и ценного: если коротко, то узнаем как применять Haskell там, где его пока не используют — для GUI на десктопе и в браузере, как альтернативу базе данных, как «клей» для внешних сервисов, — и почему это хорошо и правильно. А если подробно, то вас ждут следующие доклады:
Читать полностью »