Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Category:

Хаскель для мудаков

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

Учебник должен не учить писать на хаскеле (это всё равно не пригодится), а учить интеллектуальному опусканию других таких же неумёх в интернет-спорах. Интеллектуальному = давить интеллектом, а не эмоциями. По эмоциям отдельная книга нужна. Том 2.

В идеале книга не должна содержать ни строчки матана и ни строчки собственно хаскеля. Кому он интересен!

Главы должны быть театром абсурда, но нести некую мораль, упомянутую в эпиграфе к главе. Что-то среднее между коанами и идиотскими упражнениями в фильмах про китайские боевые искусства. ("Цель коана — придать определённый психологический импульс ученику для возможности достижения просветления или понимания сути учения")

В качестве лингвы франки я предлагаю 4 языка:

- K&R С
- ES7
- брейнфак
- регулярные выражения

С это если надо про работу с ячейками, брейнфак как всем известный пример нестандартной семантики с большим количеством реализаций (оптимизирующие компиляторы и т п), и ES7 как эталон высокоуровневости, регулярки как математический аналог K&R C (внутренний язык конечных автоматов).

Три главы Аж восемь глав я уже придумал (не обязательно первые или идущие последовательно).

Глава 100501. Описывается процесс написания на ES7 компилятора из брейнфака в graph reduction system из Плазмеер-Экелена и обратно.

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

Глава 100503. Описывается процесс разработки инструмента для поиска осмысленной программы на брейнфаке, не типизируемой после трансляции в GRS.

Глава 100504. Имплементация GRS наитупейшим образом без ячеек/стековых машин. Реализация call by name Scheme наитупейшим образом на санках. Описывается процесс поиска программы с разной асимптотикой при переходе от call by name к эмуляции call by need на GRS.

Глава 100505. Коан по boxing/universal variable representation/polymorphic recursion. Ещё не придумал.

Глава 100506. Коан по виртуальным машинам для редукции графов и тонкостям вроде G-machine blackholing. Ещё не придумал.

Глава 105007. Компилятор из брейнфака в регулярки. Поиск некомпилируемой программы.

Глава 100508. HTTP-сервер на нерасширенном брейнфаке но с внешним декодером на JS как пример кодировки эффектов. Кодирование эффектов в GRS палочкой, коданными, продолжениями, абстрактными монадами как в Х-е и свободными монадами.
Tags: fp, programming, юмор
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 17 comments