LINUX.ORG.RU

Функциональное программирование


73

0

Всего сообщений: 29

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений

FTXUI 4.1.1 - библиотека в функциональном стиле для создания консольных приложений
Группа Open Source

После более трёх месяцев разработки состоялся выпуск 4.1.1 кроссплатформенной библиотеки для C++ (стандарт C++17) FTXUI (Functional Terminal (X) User Interface), предназначенной для создания приложений с текстовым интерфейсом и распространяемой по лицензии MIT.

( читать дальше... )

>>> Подробности

 , , , ,

dataman
()

Вышел GHC 9.6.1

Вышел GHC 9.6.1
Группа Разработка

Привет, ЛОР!

10 марта вышел релиз самого популярного компилятора языка Haskell — GHC 9.6.1. С момента предыдущего мажорного выпуска 9.4.1 прошло более 10 месяцев. GHC на данный момент является эталонной реализацией языка и распространяется под модифицированной лицензией BSD3.

( читать дальше... )

>>> Подробности

 , ,

hateyoufeel
()

Glasgow Haskell Compiler 9.4.1

Glasgow Haskell Compiler 9.4.1
Группа Разработка

Привет, ЛОР!

7 августа вышла новая версия Glasgow Haskell Compiler 9.4.1. На данный момент GHC является самым активно развиваемым компилятором для Haskell.

( читать дальше... )

>>> Release Notes

 , ,

hateyoufeel
()

Racket 8.0

Racket 8.0
Группа Разработка

Вышла новая мажорная версия языка программирования Racket, основанного на Scheme и нацеленного на создание пользователем собственных DSL.

  • Завершён переход на среду исполнения Chez Scheme — таким образом удалось уменьшить объём генерируемого кода на величину от 10 до 30%, а также значительно ускорить выполнение программ и повысить эффективность.
  • Переписан движок среды тестирования программ.

>>> Подробности

 , ,

Princesska
()

GHC 9.0.1

GHC 9.0.1
Группа Open Source

Вышла новая версия компилятора языка Haskell — Glasgow Haskell Compiler. Из-за значительных изменений была увеличена мажорная версия компилятора.

Основные изменения:

  • Добавлена реализация линейных типов (расширение LinearTypes). Линейные типы позволяют отслеживать использование ресурсов на стадии компиляции и могут использоваться, среди прочих вещей, для статического управления памятью в стиле Rust.
  • Новая встроенная библиотека для работы с числами неограниченного размера: ghc-bignum. Её использование помогает с переносимостью в системах, где библиотека GMP по каким-либо причинам недоступна.
  • Улучшения в кодогенераторе, значительно увеличивающие производительность многих программ.
  • Улучшения в коде проверки сравнения с образцом (pattern matching), позволяющие находить лишние проверки в случаях, где раньше это было невозможно.
  • Новый IO-менеджер для платформы Windows. Раньше на Windows был использован IO-менеджер для Unix-систем, что приводило в худшей производительности на этой платформе. Также прекращена поддержка Windows Vista. Теперь для сборки и запуска программ на Haskell требуется минимум Windows 7.
  • Добавлено расширение QualifiedDo, расширяющее возможности по переопределению поведения кода.
  • Для сборки с LLVM теперь требуется версия 9.0 или выше.

Также недавно был выпущен корректирующий релиз GHC 8.10.4, исправляющий несколько багов в ветке 8.10.

>>> Подробности

 , ,

hateyoufeel
()

GHC 8.10.1

Группа Open Source

Состоялся очередной релиз компилятора Glasgow Haskell Compiler.

Среди изменений:

  • Новые расширения языка UnliftedNewtypes, StandaloneKindSignatures и ImportQualifiedPost.
  • Изменения в кодогенерации, включая более агрессивную специализацию кода, новый анализатор циклов, оптимизацию работы с массивами и тэггирование указателей для больших типов данных.
  • Новая команда интерпретатора :instances, показывающая доступные инстансы классов для заданного типа.
  • Улучшения в работе встраиваемого профайлера кода.
  • И, вишенкой на торте, новый сборщик мусора, отличающийся уменьшенным временем задержек, сборкой мусора без копирования данных и возможностью параллельной сборки мусора и работы кода. Для включения нового сборщика мусора нужно скомпилировать код новой версией компилятора и запустить с параметрами +RTS -xn.

Подробнее про новый сборщик мусора можно прочитать здесь.

>>> Скачать

>>> Подробности

 , ,

hateyoufeel
()

Опубликован исходный код компилятора Miranda

Группа Разработка

Исходный код компилятора языка Miranda был выпущен под открытой (BSD 2-clause) лицензией. Miranda — функциональный ленивый язык программирования, созданный в 1985 году Дэвидом Тёрнером и широко использовавшийся в 80х и 90х годах для обучения функциональному программированию. Также он стал прообразом более популярного языка Haskell, который возник в том числе из-за закрытости исходного кода Miranda.

>>> Обсуждение на Hacker News

>>> Страница о языке в Wikipedia

>>> Подробности

 , ,

hateyoufeel
()

GHC 8.8.1

Группа Open Source

Тихо и незаметно, вышла новая версия известного компилятора языка программирования Haskell.

Среди изменений:

  • Поддержка профилирования на 64-битных системах с Windows.
  • GHC теперь требует LLVM версии 7.
  • Метод fail окончательно вынесен из класса Monad, теперь он находится в классе MonadFail (финальная часть MonadFail Proposal).
  • Явное применение типа (type application) теперь работает и для самих типов, а не только для значений.
  • forall теперь является ключевым словом вне зависимости от контекста, что позволяет использовать его в type families и rewrite rules.
  • Улучшен алгоритм компоновки кода для x86.
  • Множество других изменений.

>>> Полный список изменений

>>> Гайд по миграции кода на новую версию

>>> Скачать

 , ,

hateyoufeel
()

«Функциональное программирование: базовый курс» на Common Lisp

Группа Open Source

В курсе изучаются основы функционального подхода к программированию и практические вопросы программирования на языке LISP. Функциональные языки обладают множеством интересных особенностей, знакомство с которыми расширяет кругозор программиста. Курс содержит видеолекции, опросы и практические задания по программированию. Материал курса рассчитан на 10 недель обучения. Занятия пройдут с 27 февраля по 7 мая 2017 г.

Требования

Необходимым условием для освоения курса является знание основ вычислительной техники и дискретной математики. Для прохождения курса требуется компилятор LISP, поддерживающий стандарт Common Lisp, например, GNU CLISP или SBCL.

>>> Записаться на курс

>>> Подробности

 , , ,

Oxdeadbeef
()

Common Lisp 21-го века

Группа Open Source

Начат проект по приведению Commons Lisp к нормам 21-го века.

  • Более объектно-ориентированный
  • Более функциональный
  • Разбиение стандартной библиотеки по пакетам
  • Добавление MOP - MetaObject Protocol
  • Синтаксис для регулярных выражений
  • Основан на чистом Common Lisp

Требования:

  • Любая современная реализация Common Listp (SBCL, Clozure CL, GNU CLISP или Allegro CL)
  • Quicklisp

>>> Подробности

 , ,

DiKeert
()

Встреча сообщества функциональных разработчиков Беларуси

Группа Конференции и встречи

25 октября состоится очередная встреча сообщества функциональных разработчиков Беларуси.

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

Список докладов:

  • Олег Алешко, «Introduction to typeclasses in Scala»
  • Сергей Тихон, «F# for Data*»
  • Владимир Абрамчук, «Why Y?»
  • Андрей Кириленко, «Clojure и ClojureScript. Что? Зачем? Как?»
  • Юрий Жлоба, «Киллер-фичи Erlang»

Участие бесплатное, необходима предварительная регистрация.

>>> Подробности

 , ,

ymn
()

Доступны первые выпуски второго сезона подкаста EaxCast

Группа Интернет

Кампания на BoomStarter по сбору средств на запись второго сезона EaxCast завершилась успешно. Соответственно, теперь ведутся работы над новым сезоном. В настоящее время для прослушивания доступны первые три выпуска:

  • S02E01, интервью с Александром Юрченко о работе в Яндексе, проекте OpenBSD и машинном обучении.
  • S02E02, интервью с Романом Душкиным об управлении проектами, функциональном программировании, квантовых вычислениях и краудфандинге.
  • S02E03, интервью с Владимиром Шабановым о BazQux, стартапах, геймдеве, а также Haskell и Riak.

Особый акцент в подкасте делается на «не мейнстримовых» технологиях. Впрочем, тематика подкаста не ограничивается исключительно этими вопросами. Новые выпуски публикуются раз в две недели и имеют продолжительность 40-45 минут. Всего в рамках второго сезона планируется записать 24 выпуска. Каждый выпуск сопровождается полной текстовой расшифровкой.

>>> Подробности

 , , , ,

CruZ
()

Мастер-класс по Haskell в Новосибирске

Группа Конференции и встречи

14 июня в СКБ «Робототехника и ИИ» НГТУ пройдёт X SUP-ботник. Александр Гранин обещает научить всех программировать на Haskell.

С собой желательно иметь ноутбук. Будет много живого кодинга.

>>> Подробности

 , ,

lugnsk
()

Mercury 14.01

Группа Open Source

Ещё 10 февраля вышла новая версия языка Mercury — 14.01. Мажорные релизы называются по номеру года и месяца запланированного выпуска, предыдущий был 13.05.

Mercury — это логический и функциональный язык программирования, похожий на Prolog, но с поддержкой компиляции в машинный код, чистыми предикатами, со строгой статической типизацией, явным объявлением детерминизма предикатов, с функциями (а не только предикатами), встроенным каррированием и другими новшествами.

В новой версии:

  • Могут повторяться переменные типов в объявлении экземпляров классов типов (type class instances). Например:
    instance foo(list(T), map(T, T)).
  • Ряд улучшений в стандартной библиотеке, особенно связанных с функциями свёртки списков (см. полный список).
  • Исправлены проблемы совместимости с GCC 4.8 (а также с Visual Studio 2013 и Mac OS X 10.9).

Сайт Mercury

Скачать

>>> Примечания к выпуску 14.01

 logic programming, , , ,

proud_anon
()

Вышел порт языка Shen на Javascript

Группа Open Source

Выпущен порт языка программирования Shen на Javascript.

Протестировать работу Shen на JS можно тут.

Для освежения памяти:

Shen - это функциональный язык программирования, являющийся продолжением языка Qi II. Имеет опциональную статическую систему типов, основанную на секвенциальном исчислении, и общее направление на логическое программирование.

Важной целью языка является переносимость. Ядро реализовано с использованием всего 45 функций Kernel Lisp (KL), поэтому язык достаточно быстро может быть перенесён на любую платформу.

Предыдущие посты на ЛОРе по теме:

>>> Подробности

 , shen,

x4DA
()

Лицензия Kona (интерпретатора языка K) изменена на свободную

Группа Open Source

Kona — свободная реализация языка программирования K.
K — язык программирования, по концепции сходный с APL, но использующий алфавит ASCII.
Изначально язык программирования K был разработан Артуром Вайтни, Kx Systems, но его реализация от Kx проприетарная. Kona — альтернативная свободная реализация.

8 апреля 2011 лицензия интерпретатора изменена с проприетарной на свободную лицензию ISC (используемой также в проекте OpenBSD).

Возможно, причиной перехода на свободную лицензию стала недавняя новость об открытии исходных кодов другого APL-подобного языка — J.

Видеовведение
Скринкаст по MapReduce

Домашняя страница Kona на github
Скачать текущую версию

>>> Подробности

 , , , kona, ,

Xenius
()

7-й номер журнала «Практика функционального программирования»

Группа Документация

Вышел свежий, 7-й номер журнала «Практика функционального программирования». В новом номере вы можете прочитать следующие статьи:

  • «Язык РЕФАЛ — взгляд со стороны». Бойко Банчев расскажет о сущности, истории и современном состоянии языка РЕФАЛ — детища Валентина Фёдоровича Турчина; языке незаслуженно подзабытом, но на десятилетия опередившем своё время и пустившем корни во множество современных ЯП (как, например, Mathematica).
  • «Circumflex — веб-фреймворк на Scala comme il faut». Александр Темерев даст урок использования этого «обезжиренного» и гибкого веб-фреймворка, написанного на Scala российской командой во главе с Борисом Окунским.
  • «Разработка алгоритма обнаружения движения в среде программирования Mathematica». Вадим Залива расскажет об опыте прототипирования такого алгоритма при разработке iPhone-приложения iSentry. Хотя Mathematica и не является в полном смысле этого слова функциональным языком программирования, но программирование в этой среде задействует множество не очень распространенных пока в мейнстриме, но очень важных и заслуживающих внимание средств: интерактивный интерпретатор, гомоиконность (единство кода и данных), сопоставление с образцами, wholemeal programming (оперирование целыми структурами данных, а не их частями), акцент на «чистое» программирование, dataflow programming (Manipulate) и т.п.
  • «Как написать LDAP-сервер на Erlang» и «Как написать LDAP-сервер на Си». Максим Сохацкий и Олег Смирнов обменяются любезностями со Львом Валкиным: Максим и Олег похвалят Erlang за то, что на нем можно за 20 минут написать LDAP-сервер, а Лев докажет, что дело тут вовсе не в Erlang.
  • «Продолжения в практике». Алексей Вознюк (человек, написавший на LISP самую быструю программу к конкурсу в ПФП №3) расскажет об использовании продолжений для упрятывания асинхронности кода за обыкновенным «последовательным» синтаксисом. Эта тема особенно актуальна в контексте взрывного роста Веба и сетевых сервисов, но интересна и потому, что открывает целый пласт неожиданных структур управления. Рекомендуем перед прочтением ознакомиться с недавно опубликованным в «Библиотечке ПФП» переводом статьи «Паттерны использования call-with-current-continuation».
  • «Суперкомпиляция: идеи и методы». Илья Ключников, занимающийся суперкомпиляцией в Институте прикладной математики им. М. В. Келдыша, расскажет о суперкомпиляции (кстати, изобретенной также В. Ф. Турчиным в контексте языка РЕФАЛ), построив поразительно компактный и понятный суперкомпилятор простого языка, и покажет, что она применима не только для удивительно мощной оптимизации многих классов программ, но имеет и другие неожиданные применения.

Кроме этого, журнал доступен и в печатном виде (200р, доступны и все предыдущие номера, комплекты еще дешевле, доставка куда угодно, в Москве можно самовывозом).

>>> Обсуждение свежего номера

 , , refal, , , , , ,

ott
()

Исходный код среды языка J доступен под GPL

Группа Open Source

Фирма Jsoftware сделала доступным под лицензией GPL v.3 среду J.

J — функциональный векторный язык программирования, наследник и диалект языка APL. Язык программирования J разработан в начале 1990-х Кеннетом Айверсоном и Роджером Хуэем.

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

>>> Страница загрузки исходного кода языка J

 , , , ,

psv1967
()

The Haskell Platform 2011.2

Группа Open Source

Вышла новая версия комплекта для разработки на популярном функциональном языке Haskell — «The Haskell Platform 2011.2». Данная сборка содержит всё необходимое не только для освоения, но и успешной разработки на данном языке.

В комплект включены такие важные компоненты, как:

  • GHC 7.0.2 — оптимизирующий компилятор языка Haskell, поддерживающий REPL и содержащий интерактивный отладчик;
  • Haddock — генератор документации из аннотированного исходного кода (аналог doxygen);
  • Cabal — пакетный менеджер, позволяющий «одной командой» устанавливать различные программы и библиотеки с Hackage;
  • Happy, Alex, Parsec — для упрощения написания лексических анализаторов и парсеров;
  • библиотеки для работы с OpenGL/GLU/GLUT;
  • а также многое другое.

>>> Подробности

 , , ,

ky-san
()

6-й номер журнала «Практика функционального программирования»

Группа Документация

После долгого перерыва вышел 6-й номер журнала «Практика функционального программирования», который также стал доступен и в печатном виде.

В номере вы можете найти:

  • эксклюзивные интервью с титанами функционального мира, создателями языков Haskell и Erlang: Саймон Пейтон Джонс и Джо Армстронг поделятся мыслями и ответят на вопросы о своих детищах и обо всем остальном, от работы в Microsoft Research до творчества Тарковского (обсуждение: Саймон Пейтон-Джонс, Джо Армстронг);
  • сравнение Node.js и Erlang (Дмитрий Демещук);
  • обзор языка Scala (Влад Патрышев);
  • перевод статьи Дэна Пипони о быстром сопоставлении с регулярными выражениями при помощи моноидов;
  • статью Евгения Кирпичёва, в которой идеи Дэна Пипони реализованы в коде

Кроме этого, начат проект «Библиотечка ПФП» в рамках которого будут публиковаться переводы известных статей на тему функционального программирования.

>>> Официальный анонс

 , , , , , , , ,

ott
()