Category: it

Смешной вопрос...

Ко мне поступила просьба —
Хочу попросить какую-нибудь книжку, где был бы хороший пример применения категорий в программировании. Желательно что-нибудь совсем попроще, потому что я это собираюсь рассказать на маленьком спецкурсе в Ноябрьске. Слушать будут студенты, обущающиеся информатике, так что самой темы программирования можно не бояться.

Человек функциональных языков не знает совсем.
Скорее всего, большинство тех студентов тоже не знают.
Но по крайней мере, Саша на каждом нашем семинаре бывает и уже что-то "понимает в категориях".
Про монады многое понимает со стороны математики. Ну в смысле, формальные вещи он знает, но опыта использования монад мало. Интуитивно склонялся (он алгебраист-решёточник) к отождествлению монады с оператором замыкания ;-)
Про моноидальные категории он в курсе и всякие моноиды в моноидальных категориях да действия моноида (например, модуль над моноидом в моноидальной катгеории).

И что ему присоветовать за книжку?...
Мотив поста такой, что наверное, я бы и сам мог рассказать, но книжек никаких не помню.
Как-то по-другому эта тема до меня доходила, не читал из таких книжек ни одну полностью с начала до конца.
Только куски выхватывал из разных книжек да статей.

Как правильно готовить JavaScript?

Собственно, вопрос.
Надо будет писать на джаба-скрипте с использованием SVG.
Стоит ли мучиться с его генерированием или проще уж писать нативно?
Если отстроить систему его генерации из-под Haskell, получается удобная работа с полноценными макросами, но оперируя ограниченным подмножеством языка.
Стоит ли оно того?
И где про это ещё лучше спросить? Может, ru_lambda?

Update: Забыл совсем.
Как вы думаете, можно ли пользоваться YHC, который умеет компилировать Haskell->JS?
Сам такого опыта не имею, вот и спрашиваю...

Звук в Haskell под виндовс

Подскажите мне, замучившемуся,
а чем правильнее всего записывать звук
с микрофона в программе на Haskell под виндовс?

Чего только не пробовал...
Либо не удаётся поставить, либо не работает...
Хотябы, посоветуйте конкретную библиотеку,
буду стараться её поставить и заставить работать...
Да, пользую Haskell Platform 2009,
так как, 2010 ещё пользовать нельзя.

А куда с такими вопросами можно обращаться?
Ну не в ru.lambda же...

Haskell очень страшный, дети, не изучайте его!

Многие, кто слышал про Haskell,
зацепили краем уха страшное слово,
всенепременно, у всех программистов,
ассоциируемое с Haskell'ем -- монады.

Но это всё фигня.
Посмотрите на комонады, сопряжённые функторы,
расширения Кана и braided моноидальные категории.

http://hackage.haskell.org/package/category-extras

Скажу по секрету, что это совсем даже и не ужас,
бывает и ещё гораздо страшнее, очень-очень страшное!
Дети, бойтесь Haskell'я, обходите его стороной!

Немного около Maude.

Изучал я применения топосной логики
и для этого выбрал метод придумывания языка.
Ну так вот, в процессе попыток упрощения
пришёл к категорной семантике term rewriting.
Ну об этом как-нибудь потом, не люблю рассказывать
что-то, плохо додуманное, буду дальше читать.

Так вот, и тут-то я вспомнил про Maude,
за которым с давних пор время от времени поглядываю.
Настоятельно рекомендую всем его посмотреть --
http://www.cs.swan.ac.uk/~csneal/MaudeCourse/SubSorts.html
и далее по ссылкам "Next".
Эти мои изучения нежданно-негаданно
привели к пониманию Maude ;-)
Причём, и штука-то это очень простая!

Теоретически етой штукой можно описать что угодно --
хоть системы типов вплоть до навороченных зависимых.
Но что меня впечатлило, так это наглядная демонстрация
излишеств навороченных систем типов.
Я не говорю, что они совсем не нужны, но оказывается,
без них можно очень запросто обходиться во многих задачах,
имея не меньшую эффективность при решении!
Лично я заинтересовался Maude, как практическим пособием
по применению term rewriting'а для практических задач.
Term rewriting "был всегда" ;-), но вот оказывается,
под него можно вполне удобно делать многие вещи.
Просто технику программирования не развивали ;-)
Там есть замечательные примеры моделирования железяк.
Да, и Кнут-Бендикс для егоных систем тоже реализован.

Только недавно я понял близость term rewriting
с конструктивной теорией категорий, и Maude как-то лучше
очертил границы практической применимости этой близости :-)
В общем, вчера были сплошные инсайты ;-)
Но об этом -- в следующем посте.