alogic: (war)
2016-09-16 03:39 am
Entry tags:

Haskell и смартфон

Купил за $122 смартфон Lenovo K80M с 4Гб оперативки, 64Гб карты памяти и Intel процессором. Везли из Китая почти месяц. Вот, думал, теперь можно будет Haskell компилировать сколько хочешь. Планшет Dell Venue 7 со своим 1Гб уже не тянет. Однако, не тут то было. Поставил GNU Root Debian, но все сборки GHC - 7.8.4, 7.10.3, 8.0.1 - выдают:

ghc: failed to create OS thread: Cannot allocate memory

В Гугле говорят про какой-то SELinux и что это из-за него. Так что осталась надежда, что получив права root проблему можно будет решить.

Update: Проблему решило
ulimit -s 820000
alogic: (war)
2016-01-05 02:09 am
Entry tags:

TIGRE vs G-machine

Филип Дж. Купман придумал систему редукции на графах TIGRE (pdf) в 1989 году. Сначала он защитил диссертацию, потом издал книгу (всё есть на его странице), где утверждал, что вместо 7 процессорных инструкций, как в G-machine, его система использует 1 и поэтому по производительности ставит функциональные языки в один ряд с императивными. G-machine (pdf), в которую транслируется код Haskell, была придумана Самоном Пейтоном Джонсом раньше и что-то не видно, чтобы он обратил внимание на TIGRE. Вскоре Купман перестал интересоваться оптимизацией функциональных языков и перешёл на встроенные системы. Почему TIGRE не была принята и была ли она так уж хороша? Непонятно.
alogic: (war)
2016-01-04 04:43 am
Entry tags:

acme-schoenfinkel

Этот пакет восстанавливает историческую справедливость и превращает непонятное каррирование в простой шонинг.
alogic: (war)
2015-10-12 03:37 am
Entry tags:

(no subject)

3 часа назад открыли очередной модуль на курсе по Haskell. Уже 15 человек решили первые задачи и 1 добрался до последней. Кто все эти люди? Почему им не спится по ночам? Какой-то нездоровый ажиотаж.
alogic: (war)
2015-09-28 04:14 am
Entry tags:

Joey Hess

Оказывается, Joey Hess, автор debian-installer, debhelper, debconf, променял Debian на Haskell.
alogic: (war)
2015-09-23 07:28 am
Entry tags:

Курс по Haskell на русском!

Наконец-то вышел единственный, но качественный курс Функциональное программирование на языке Haskell на русском языке. Курс выглядит гораздо грамотнее, чем даже английские. Главная тема для новичков, монады, разбирается подробно и, как рекомендуется ныне, каждая из монад по отдельности.
http://deni-ok.livejournal.com/59290.html
alogic: (war)
2015-09-20 01:08 am
Entry tags:

(no subject)

Теперь Haskell стал, как никогда, близок к Java.

main = do
  print("bananas".reverse)
  print(4.negate.recip)
  print([1..5].map (\ x -> x * 2).filter (\ x -> x > 5))

  where (.) = flip id


shebang
alogic: (war)
2015-08-15 08:19 am
Entry tags:

Пришёл на лекцию подготовленным

Заслужил благодарность от индийского профессора за активное участие в форуме. Даже в лекции упомянули
acnowledgment

NPTEL Haskell course, Week 4, Lecture5: Defining functions in ghci (pdf) (видео)
alogic: (war)
2015-07-31 06:17 am
Entry tags:

ghci online

www.tutorialspoint.com/compile_haskell_online.php предлагает редактор и терминал, внизу окна, в котором можно запускать ghci. Подсветки синтаксиса только нет, а так отличный сайт для изучения Haskell прямо в браузере.

tutorialspoint
alogic: (war)
2015-06-29 01:35 pm
Entry tags:

Haskell курсы

Национальная Программа Улучшения Технического Образования от правительства Индии предлагает начальный курс по Haskell.
https://onlinecourses.nptel.ac.in/noc15_cs13/course

Регистрация простая, через Гугл, начало курса 15 июля, язык -- английский.

На русском есть видеолекции Haskell и слайды Дениса Москвина ([livejournal.com profile] deni_ok). Этот курс читался весной в Питербурге и включает также лямбда-исчисление, монады, аппликативные функторы, трансформеры.
https://compscicenter.ru/courses/func-prog/2015-spring/

UPD: Ещё вики-страничка, там дополнительные домашние задания и исходники программ.
http://logic.pdmi.ras.ru/sewiki/index.php/Функциональное_программирование_2015
alogic: (war)
2015-05-09 04:49 am
Entry tags:

Haskell on ARM

В Debian Unstable удалось запустить ghci на ARM процессоре. Теперь с Haskell можно играться на каждом смартфоне.

joey@darkstar:~$ dpkg --print-architecture 
armhf
joey@darkstar:~$ ghci
GHCi, version 7.8.4: http://www.haskell.org/ghc/  :? for help

Новость на reddit.com
alogic: (war)
2014-12-23 08:53 am
Entry tags:

FP101x

Закончил, между делом, единственный пока он-лайн курс по Haskell FP101x. Как для человека, который уже почти всё там знает, курс просто прекрасный:) Для новичков наверняка будут трудности, связанные с освоением монад, но тут, по собственному опыту знаю, нужно время, чтобы к ним привыкнуть. Однако, чтобы получить сертификат об окончании, монады можно и пропустить. Надо сделать всего лишь 60% заданий и авторы накидали много таких, где монады не используются.

Основная книга, по которой всё читается, Graham Hutton "Programming in Haskell"( в сети есть pdf). Пару больших упражнений взято оттуда, остальные команда Мейера, надо полагать, сама выдумала. Так как университетский курс по книге читается уже много лет, то в сети есть и решения к книжным упражнениям, что для любителей читинга делает задачу прохождения курса вообще элементарной.

Честно говоря, один раз к читингу прибегнул и я, когда в предпоследней лабораторной работе надо было построить управление параллельным выполнением задач (concurrency) с помощью продолжений (continuations). Эти continuations ещё хуже монад. Начали их использовать ещё в Лиспе для программирования исключений и уже там написали горы руководств в попытке объяснить, что это такое. Многие всё равно не поняли. Тут же всю эту тему попытались уложить в небольшую лабораторную работу. Народ на форуме честно признавался: благодаря тому, что авторы типы функций дали, построить сами функции можно, но понять, что они делают, мало у кого получилось.

Вот и я, проделал 24 из 26 заданий, а последний шаг никак не давался. И обидно ведь, всё равно что угадал все буквы, но не смог назвать слово. Пришлось найти оригинальную статью про "poor man's concurrency" и подсмотреть. Оказалось, что настолько простой и прямолинейный шаг надо было сделать, основанный на элементарном паттерн-матчинге, что авторам и не пришло в голову дать какую-то подсказку, хотя до этого они щедро их раздавали. Так что теперь у меня не 98% выполнения заданий, а 99%.

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

alogic: (war)
2014-10-28 06:01 am
Entry tags:

Haskell course

Хорошая новость. Erik Meijer продлил на 2 недели срок сдачи домашних заданий, так что желающие ещё могут записаться на курс Introduction to Functional Programming. Первые две недели задания на языке Haskell и именно о нём рассказывается. Кроме того в дополнительных материалах рассказывается о других функциональных языках.
alogic: (war)
2014-07-23 10:01 pm
Entry tags:

Haskell на планшете

Надежды на то, что открытость кода приведёт к возможности запуска любых программ на любых архитектурах оказались не столь радужными. В частности GHC пока не удаётся запустить на ARM-процессорах, так что пришлось ждать появления дешёвого 7'' планшета на x86, чтобы носить Haskell в кармане. Купил в прошлую пятницу Dell Venue 7 за 130$ c 1 Gb памяти и 8 Gb встроенной флешкой (из которой доступно 3,8 Gb). Камеру фирма Dell туда поставила, конечно, ниже плинтуса - 3 Mp, зато приличный экранчик 1200x800 (так что даже мелкий шрифт отлично виден) и хорошая батарея на 4100 mah. На планшет устанавливаются Gnuroot Wheezy и Haker's Keyboard. После запуска попадаем в Debian Wheezy, который обновляем до Jessie и делаем

apt-get install haskell-platform


Теперь, как говорится, под каждым нам кустом готов для экспериментов в GHCi и стол и дом. Про планшетик могу пока лишь добавить, что браузер, YouTube, Google Maps на нём просто летают и этого, вместе с возможностью чтения книг в PDF, пока хватает для счастья.
alogic: (war)
2014-05-26 11:29 pm
Entry tags:

OdHUG

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

В основном разговор был о тестировании. Сравнивался подход в Хаскеле и в Питоне, вспомнили ещё один подход, который знающие люди называли между собой BDD. Но об этом не особо говорили, потому что разрабатываемый Ромой фреймворк Tasty всё-таки тестирует логику работы программы, а не пользовательский интерфейс.

Ещё Рома рассказал о своих планах. Во-первых, задуман новый вариант на тему Parsec, который будет выдавать сообщения об ошибках, позволяющие легко создаваемый парсер исправлять. Во-вторых, где-то в середине лета планируется провести конференцию по использованию Haskell в коммерческих проектах. Так что, несмотря на новую работу Ромы в фирме, которая базируется в Александрии близ Вашингтона, в Одессе ещё будет майдан против использования изменяемых переменных.
alogic: (war)
2013-12-20 02:18 am
Entry tags:

ls на Haskell

Результат сегодняшнего мастер-класса -- утилита ls в простом исполнении. Понимает только одну опцию командной строки (-a, --all) и один параметр -- директорию, содержимое которой надо показать. По истории изменений (смотреть снизу вверх), можно наблюдать, как менялся код во время написания. Благодаря прекрасной библиотеке optparse-applicative усилия по добавлению опций минимальны, справка генерируется автоматически. Всего 36 строк.
alogic: (war)
2013-12-17 05:28 am
Entry tags:

OdHUG

В четверг будет мастер-класс по написанию простой утилиты командной строки на Haskell. Рома расскажет, как в Haskell делать ввод-вывод, вызывать системные функции и разбирать аргументы командной строки. При этом прозвучат слова «монада» и «аппликативный функтор».
alogic: (war)
2013-11-12 03:49 am
Entry tags:

OdHUG

В четверг, в уютном офисе Dataart Рома Чепляка будет рассказывать программистам на ООП что же это самое объектно-ориентированное программирование из себя представляет. Потому что в прошлый раз, когда была вводная про Haskell и его экосистему, народ начал спрашивать, а чем же это ваше функциональное программирование так лучше нашего ООП?
Честно говоря, ничем не лучше. Такой же самый у нас динамический, объектно-ориентированный язык Haskell.
alogic: (war)
2013-10-09 08:14 am
Entry tags:

OdHUG

15 октября в 18:30, регистрация. Как установить Haskell, как найти и установить нужные пакеты, где искать документацию, и т.д.. В офисе компании DataArt - парк им. Шевченко, стадион “Черноморец”, корпус D1, 5 этаж.
alogic: (war)
2013-09-17 02:29 am
Entry tags:

OdHUG

В июле поговорить про Хаскель собрались всего втроём. Зато одним из нас был Брайан Рихтер, приехавший на велосипеде из Швеции в Одессу американец. Между тем довольно познавательная встреча получилась, смотрели код его проекта terminfo-hs. Довольно небольшой файл и я после этого перестал бояться Parsec.

В августе уже собралось 6 человек. Рома рассказывал про соревнование ICFPC. С точки зрения капитана команды об этом вскоре написал и Дмитрий Астапов.

Сентябрьская встреча будет в четверг и мы узнаем, что происходило на хакатоне в Цюрихе.