Избранное

Начальная страница

Полный перечень переводов находится в разделе Переводы.

Далее, в обратном хронологическом порядке, приводится информация о публикациях новых переводов, обновлении (корректировке) имеющихся и связанные темы.

(Milewski) Нейронные сети, пред-линзы и тройные модули Тамбары

Перевод статьи Бартоша Милевски «Neural networks, pre-lenses, and triple Tambara modules» (исходный текст расположен по адресу — https://bartoszmilewski.com/2024/03/22/neural-networks-pre-lenses-and-triple-tambara-modules/

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

(Milewski) Линейные линзы в Haskell

Перевод статьи Бартоша Милевски «Linear lenses in Haskell» (исходный текст расположен по адресу — https://bartoszmilewski.com/2024/02/07/linear-lenses-in-haskell/

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

(Milewski) Аппликативные функторы

Перевод статьи Бартоша Милевски «Applicative Functors» (исходный текст расположен по адресу — https://bartoszmilewski.com/2017/02/06/applicative-functors/.

Содержимое перевода статьи включает описание аппликативов как слабых моноидальных функторов, исследование их свойств в связи с моноидами, замкнутыми функторами, вопросами эквивалентности сопряжений, исчисления концов/ко-концов.

(Milewski) Упражнение на когерентность

Перевод статьи Бартоша Милевски «Exercise in Coherence» (исходный текст расположен по адресу — https://bartoszmilewski.com/2023/09/19/exercise-in-coherence/.

Содержимое перевода статьи включает описание решения упражнения 1.1 из главы VII «Моноиды» книги МакЛейна «Категории для работающего математика». Решение базируется на использовании визуальных представлений.

(Milewski) Дао функционального программирования

Исходный авторский текст (The Dao of Functional Programming) доступен по адресу:

https://github.com/BartoszMilewski/Publications/blob/master/TheDaoOfFP/DaoFP.pdf

Перевод соответствует версии от 22 апреля 2023 г.

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


Структура книги:

Предисловие

  1. Основы
  2. Композиция
  3. Изоморфизмы
  4. Тип-сумма
  5. Тип-произведение
  6. Функциональные типы
  7. Рекурсия
  8. Функторы
  9. Естественные преобразования
  10. Сопряжения
  11. Зависимые типы
  12. Алгебры
  13. Коалгебры
  14. Монады
  15. Монады из сопряжений
  16. Ко-монады
  17. Концы и ко-концы
  18. Модули Тамбары
  19. Расширения Кана
  20. Обогащение

Предметный указатель

(Milewski) Теория категорий для программистов

Исходный авторский текст (Category Theory for Programmers) расположен по адресу: https://github.com/hmemcpy/milewski-ctfp-pdf/releases, представленный обновляемыми версиями. Перевод соответствует версии v36-98b71ac от 30 января 2023 г. Каждая версия содержит несколько реализаций, различающихся включениями фрагментов кода на различных языках программирования (помимо Haskell).

Содержимое перевода включает изложение основ теории категорий (с фрагментами кода только на Haskell), представляющих интерес для программистов.


Структура книги:

Предисловие

——- Часть I ——-

01. Категория: суть композиции

02. Типы и функции

03. Большие и малые категории

04. Категории Клейсли

05. Произведения и копроизведения

06. Простые алгебраические типы данных

07. Функторы

08. Функториальность

09. Функциональные типы

10. Естественные преобразования

——- Часть III ——-

11. Теория категорий и декларативное программирование

12. Пределы и ко-пределы

13. Свободные моноиды

14. Представимые функторы

15. Лемма Йонеды

16. Вложение Йонеды

——- Часть III ——-

17. Все о морфизмах

18. Сопряжения

19. Свободные / забывающие сопряжения

20. Монады: определение программиста

21. Монады и эффекты

22. Монады с категорной точки зрения

23. Ко-монады

24. F-алгебры

25. Алгебры для монад

26. Концы и ко-концы

27. Расширения Кана

28. Обогащенные категории

29. Топосы

30. Теории Ловера

31. Монады, моноиды и категории


Список дополнительной литературы

Предметный указатель


Показалось уместным привести здесь перевод фрагмента откровений автора книги, под названием «Я — беженец» (в оригинале, на сайте Б.Милевски, «I’m a refugee»). Во-первых, как мне кажется, это определенным образом характеризует его как Человека. Во-вторых, у меня в памяти сразу возник образ российского ученого В.Ф.Турчина, тоже физика (доктора физико-математических наук), тоже беженца, тоже кибернетика (создатель уникального языка функционального программирования Refal), философа (автор концепции метасистемного перехода), тоже Учителя.

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

Я — беженец

Я беженец. Я бежал из коммунистической Польши и получил политическое убежище в Соединенных Штатах. Это было так давно, что я больше не думаю о себе как о беженце. Я американец — не по рождению, а по выбору. Я понимаю, что быть американцем не имеет ничего общего с этнической принадлежностью, религией или личной историей. Я стал американцем, приняв определенную систему ценностей, указанную в Конституции. Такие вещи, как свобода выражения мнений, свобода от преследований, равенство, стремление к счастью и т.д. Я, также, поляк и горжусь этим. Я говорю на этом языке, я знаю свою историю и культуру. Здесь нет противоречий.

Я ученый и обычно оставляю политику другим. На самом деле я приехал в Соединенные Штаты, чтобы уйти от политики. В Польше я занимался политической борьбой, я был членом Солидарности, и я присоединился к сопротивлению, когда Солидарность была сокрушена. Я мог бы остаться и продолжить борьбу, но вместо этого я решил уйти и внести свой вклад в общество в других областях.

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

Когда вы живете под диктатурой, вы должны развивать определенные навыки. Если прямой подход может вызвать у вас проблемы, вы пытаетесь приспособиться к системе. Когда в Польше было введено военное положение, все международные поездки были приостановлены. Тогда я был аспирантом, работая над своей кандидатской в области теоретической физики. Для меня было очень важно связаться с учеными из-за рубежа. Как только военное положение закончилось, мой руководитель и я решили отправиться в Советский Союз, а не на Запад. Но власти решили, что выдача загранпаспортов ученым — отличная возможность заставить их работать на систему. Поэтому, прежде чем мы смогли бы получить разрешение на выезд за границу, нам пришлось посетить Департамент безопасности — секретную полицию — для беседы. От наших друзей, с которыми беседовали раньше, мы знали, что нам будет предложен выбор: стать информатором или забыть о поездке за границу.

Мой профессор пошел первым. Он прибыл вовремя, но они заставили его долго ждать снаружи офиса. Через час он выбежал. Без загранпаспорта.

Беседа со мной началось с безобидных вопросов. Меня спросили, кто был начальником Солидарности в университете. Это не было секретом — он был моим помощником по работе в физическом отделе. Затем стала обсуждаться моя будущая работа в университете. Суть заключалась в том, что Департамент безопасности может помочь мне сохранить позицию в университете или добьется моего увольнения. Понимая, что происходит, я блефую, говоря, что я один из самых ярких молодых физиков, и моя работа в полной мере надежна. Затем я начал говорить о моей запланированной поездке в Советский Союз. Я убедил своего интервьюера и объяснил, как ужасно страдает советская наука, потому что их правительство не позволяет ученым путешествовать на Запад и насколько в этом свете польская наука лучше. Вы должны понимать, что даже в глубине Департамента безопасности коммунистической страны не было любви к нашим советским братьям. И было бы лучше, если бы мы могли победить их в науке. Я получил загранпаспорт без лишних хлопот.

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

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

Вы можете высмеивать нас, умников, столько, сколько хотите, но каждый раз, когда вы отправляете комментарий, вы используете созданную нами инфраструктуру. Миллионы магнито-оксидных полевых транзисторов и жидкокристаллический дисплей стали возможными благодаря развитию квантовой механики и материаловедения. Операционная система была написана инженерами-программистами на языках, основанных на математике, разработанной Аланом Тьюрингом и Алонсо Чёрчем. Попытайтесь это отрицать, и вы закончите тем, что будете чирикать пером на пергаменте.

Ученые и инженеры считают себя слугами общества. Мы не предъявляем много требований и очень довольны тем, что никто не мешает нам делать свою работу. Но если наша деятельность будет нарушена невежественными, энергичными политиками, мы будем действовать. Мы везде, и мы знаем, как пользоваться Интернетом — мы его изобрели …

(Milewski) И тайное становится явным

Перевод статьи Бартоша Милевски «Teaching optics through conspiracy theories» (исходный текст расположен по адресу — https://bartoszmilewski.com/2022/04/05/teaching-optics-through-conspiracy-theories/).

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

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

(Milewski) Оптика на ко-предпучках


Перевод статьи Бартоша Милевски «Co-Presheaf Optics» (исходный текст расположен по адресу — Текст оригинальной статьи).

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

(Milewski) Профункторное представление полиномиальных линз


Перевод статьи Бартоша Милевски «Profunctor Representation of a Polynomial Lens» (исходный текст расположен по адресу — Текст оригинальной статьи).

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

Профункторное представление полиномиальной линзы задается концом по всем профункторам в определенной категории Тамбары.

(Milewski) Полиномиальная линза


Перевод статьи Бартоша Милевски «PolyLens» (исходный текст расположен по адресу — Текст оригинальной статьи).

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

Такая полиномиальная линза имеет профункторное представление, с использованием концов, что позволяет компоновать оптику, используя стандартную композицию функций..