Опис послуги
ПерекладЯ розробляю програми на мові Joy — чисто функціональній конкатенативній мові, де програма цілком збирається з композиції функцій, які передають одна одній єдиний стек. Тут немає названих змінних і немає возні з лямбдами: я складаю малі комбінатори у великі, і вся програма читається як чесний потік даних. Якщо вам потрібна стекова процедура, набір переиспользуваних квотацій або акуратна безточкова переробка заплутаної логіки — я це зроблю.
Моя робота йде за кількома напрямами. По-перше, розробка з нуля: я проектую словники слів, виношу загальні шаблони в комбінатори як map і fold, а також в схеми рекурсії, якими Joy славиться, і тримаю кожне визначення коротким і перевіреним. По-друге, рефакторинг: беру розросшихся скрипт на мові Joy і переписую його у дисциплінованому безточковому стилі, щоб смисл ніс не побічний ефект, а композиція. По-третє, ідея «програма як дані»: оскільки квотації — це звичайні списки, я пишу метапрограми, які будують, розбирають і переписують інші програми, і застосовую переписування термів, щоб доводити малі еквівалентності і спрощувати вирази.
Ще я викладаю. Проводжу індивідуальні заняття і готую письмові матеріали, які ведуть новачка від порожнього стека до самозастосування рекурсії, з завданнями від простих до по-справжньому складних. Дослідницький досвід дозволяє мені обговорювати алгебру мови, її зв'язок з комбінаторною логікою і те, чим стекова модель відрізняється від лямбда-числення.
Що ви отримуєте: прокоментований вихідний код, набір тестів на кожне слово, коротку проектну записку про стратегію композиції і созвон-розбір. За плечима — роки роботи з конкатенативними і функціональними мовами і любов до коду, який лишається малим, доказовим і приємним для читання.
Моя робота йде за кількома напрямами. По-перше, розробка з нуля: я проектую словники слів, виношу загальні шаблони в комбінатори як map і fold, а також в схеми рекурсії, якими Joy славиться, і тримаю кожне визначення коротким і перевіреним. По-друге, рефакторинг: беру розросшихся скрипт на мові Joy і переписую його у дисциплінованому безточковому стилі, щоб смисл ніс не побічний ефект, а композиція. По-третє, ідея «програма як дані»: оскільки квотації — це звичайні списки, я пишу метапрограми, які будують, розбирають і переписують інші програми, і застосовую переписування термів, щоб доводити малі еквівалентності і спрощувати вирази.
Ще я викладаю. Проводжу індивідуальні заняття і готую письмові матеріали, які ведуть новачка від порожнього стека до самозастосування рекурсії, з завданнями від простих до по-справжньому складних. Дослідницький досвід дозволяє мені обговорювати алгебру мови, її зв'язок з комбінаторною логікою і те, чим стекова модель відрізняється від лямбда-числення.
Що ви отримуєте: прокоментований вихідний код, набір тестів на кожне слово, коротку проектну записку про стратегію композиції і созвон-розбір. За плечима — роки роботи з конкатенативними і функціональними мовами і любов до коду, який лишається малим, доказовим і приємним для читання.