Природні явища монад, що використовують категорію-теоретичну основу


18

Сьогодні розмова Геннінга Керстана ("Семантика слідів для імовірнісних перехідних систем") вперше зіткнулася з теорією категорій. Він створив теоретичну основу для опису імовірнісних перехідних систем та їх поведінки загалом, тобто з незліченними нескінченними наборами стану та різними уявленнями про сліди. З цією метою він проходить через кілька шарів абстракції, щоб нарешті закінчитись поняттям монад, яке він поєднує з теорією мір, щоб побудувати потрібну йому модель.

Врешті-решт, йому знадобилось 45 хвилин (приблизно) створити рамку для опису концепції, яку він спочатку пояснив за 5 хвилин. Я ціную красу підходу (він робить узагальнення красиво більш різні поняття про сліди) , але це здається мені дивним балансом все ж.

Я намагаюся зрозуміти, що таке монада насправді , і наскільки така загальна концепція може бути корисною для додатків (як в теорії, так і в практиці). Чи справді варто докласти зусиль, залежних від результатів?

Тому це питання:

Чи існують природні проблеми (у значенні КС), щодо яких абстрактне поняття монад може бути застосоване і допомагає (або навіть є інструментальним) для отримання бажаних результатів (взагалі чи приємніше, ніж без)?


2
Кодування станів суто функціональною мовою програмування? Це достатньо природна проблема CS?
Стефан Гіменез

2
Більш загальна проблема управління ефектами у функціональних мовах - це приклад, який я бачив найбільше: для теорії монади для ефектів сексуальні, а для практики дуже зручна ІО монада Haskell.
jmad

І які б були переваги порівняно з класичною, відносно легкою семантикою? Чи монади ФП навіть те саме, що і в теорії категорій? Запитання за запитаннями.
Рафаель

Дивіться це питання на cstheory.SE для більш загального питання після використання теорії категорій.
Рафаель

Відповіді:


6

Питання про те, чи природне виникнення монади, схоже на питання, чи є група (в розумінні теорії груп) природною. Після того, як ви щось формалізуєте, у цьому випадку як ендофунктор, він задовольняє аксіоми бути монадою чи ні. Якщо це все-таки задовольняє аксіоми, то людина отримує багато технічної техніки безкоштовно.

Доповідь Моггі Поняття обчислень та монади в значній мірі опечатують угоду: монади неймовірно природні та корисні для опису обчислювальних ефектів уніфікованим чином. Вадлерта інші перевели ці поняття, щоб розібратися з обчислювальними ефектами на функціональних мовах програмування, використовуючи з'єднання, що функтор є конструктором типу даних. Це додає глазурі на торті. FP монади дозволяють лікувати обчислювальні ефекти, такі як IO, які були б без них надзвичайно неприродними. Монади надихнули пов'язаних з цим корисних понять, таких як стрілки та ідіоми, які також дуже корисні для структурування функціональних програм. Перегляньте посилання Wadler для ознайомлення. FP монади - це те саме, що і монади теорії категорій в тому сенсі, що для монади FP для роботи тих же рівнянь потрібно утримувати --- компілятор покладається на ці. Взагалі уявлення монади відрізняються (різні, але еквівалентні операції та рівняння), але це поверхнева різниця.

Велика частина роботи Барта Джейкобса , якщо взяти один приклад, використовує монади. Багато роботи випливає з вуглегебри, яка є загальною теорією систем. Одним із багатьох внесків Якобса в цю область є розробка узагальненого поняття слідової семантики для систем (описаних як вугілля) на основі монад. Можна стверджувати, що поняття слідової семантики є природним: що таке семантика системи? Перелік дій, які можна спостерігати!

Один із способів зрозуміти монадів - це спочатку програмувати в Haskell, використовуючи monads. Тоді знайдіть один із безлічі доступних навчальних посібників (через google). Почніть з кута програмування, потім перейдіть до теоретичної сторони, починаючи з якоїсь базової теорії категорій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.