Skill Free Monad Generation: Генерация структур из сигнатур
Суть навыка
Этот навык создает Free монады и Cofree комонады. Он решает задачу построения структур на основе сигнатур, предоставляя основу для интерпретации и манипулирования этими структурами. Навык позволяет генерировать код, описывающий вычисления как последовательность эффектов, а затем интерпретировать эти эффекты.
Механика работы
- Навык принимает сигнатуру Functor в качестве входных данных.
- Генерируется определение Free f a или Cofree f a на основе сигнатуры.
- Создается код для выполнения операций "поднятия" (Pure и Roll для Free, :< для Cofree).
- Обеспечивается интеграция с Gay.jl для работы с цветочными потоками.
- Генерируется код для создания и обработки Color stream.
Технологии
Навык использует Haskell для определения и генерации структур. Julia применяется для интеграции с Gay.jl. В основе лежит концепция Functors и Comonads. Free монады реализуют левое сопряжение к забывающему функтору U. Cofree комонады представляют собой дуальную конструкцию. Gay.jl обеспечивает работу с цветочными потоками. Генерируемый код включает определения для Pure, Roll и :<.
npx skills add https://github.com/plurigrid/asi/tree/main/ies/music-topos/.codex/skills/free-monad-gen
[HINT] Скачивает всю директорию скилла с GitHub: SKILL.md и все связанные файлы