Описание услуги
Я разрабатываю программы на языке Joy — чисто функциональном конкатенативном языке, где программа целиком собирается из композиции функций, передающих друг другу единый стек. Здесь нет именованных переменных и нет возни с лямбдами: я складываю маленькие комбинаторы в большие, и вся программа читается как честный поток данных. Если вам нужна стековая процедура, набор переиспользуемых квотаций или аккуратная бесточечная переработка запутанной логики — я это сделаю.
Моя работа идёт по нескольким направлениям. Во-первых, разработка с нуля: я проектирую словари слов, выношу общие шаблоны в комбинаторы вроде map и fold, а также в схемы рекурсии, которыми Joy славится, и держу каждое определение коротким и проверяемым. Во-вторых, рефакторинг: беру разросшийся скрипт на языке Joy и переписываю его в дисциплинированном бесточечном стиле, чтобы смысл нёс не побочный эффект, а композиция. В-третьих, идея «программа как данные»: поскольку квотации — это обычные списки, я пишу метапрограммы, которые строят, разбирают и переписывают другие программы, и применяю переписывание термов, чтобы доказывать небольшие эквивалентности и упрощать выражения.
Ещё я преподаю. Провожу индивидуальные занятия и готовлю письменные материалы, которые ведут новичка от пустого стека к самоприменимой рекурсии, с задачами от простых до по-настоящему трудных. Исследовательский опыт позволяет мне обсуждать алгебру языка, его связь с комбинаторной логикой и то, чем стековая модель отличается от лямбда-исчисления.
Что вы получаете: прокомментированный исходный код, набор тестов на каждое слово, короткую проектную записку о стратегии композиции и созвон-разбор. За плечами — годы работы с конкатенативными и функциональными языками и любовь к коду, который остаётся маленьким, доказуемым и приятным для чтения.
Моя работа идёт по нескольким направлениям. Во-первых, разработка с нуля: я проектирую словари слов, выношу общие шаблоны в комбинаторы вроде map и fold, а также в схемы рекурсии, которыми Joy славится, и держу каждое определение коротким и проверяемым. Во-вторых, рефакторинг: беру разросшийся скрипт на языке Joy и переписываю его в дисциплинированном бесточечном стиле, чтобы смысл нёс не побочный эффект, а композиция. В-третьих, идея «программа как данные»: поскольку квотации — это обычные списки, я пишу метапрограммы, которые строят, разбирают и переписывают другие программы, и применяю переписывание термов, чтобы доказывать небольшие эквивалентности и упрощать выражения.
Ещё я преподаю. Провожу индивидуальные занятия и готовлю письменные материалы, которые ведут новичка от пустого стека к самоприменимой рекурсии, с задачами от простых до по-настоящему трудных. Исследовательский опыт позволяет мне обсуждать алгебру языка, его связь с комбинаторной логикой и то, чем стековая модель отличается от лямбда-исчисления.
Что вы получаете: прокомментированный исходный код, набор тестов на каждое слово, короткую проектную записку о стратегии композиции и созвон-разбор. За плечами — годы работы с конкатенативными и функциональными языками и любовь к коду, который остаётся маленьким, доказуемым и приятным для чтения.