About the service
I develop programs in Joy — a purely functional concatenative language where entire programs are built from function composition, with functions passing a single stack to each other. There are no named variables and no lambda fussing: I stack small combinators into large ones, and the whole program reads as an honest data flow. If you need a stack procedure, a set of reusable quotations, or neat point-free reworking of tangled logic — I'll do it.
My work runs in several directions. First, development from scratch: I design vocabularies of words, pull common patterns into combinators like map and fold, and into the recursion schemes that Joy is famous for, keeping each definition short and testable. Second, refactoring: I take a grown Joy script and rewrite it in disciplined point-free style so the meaning lives in composition, not side effect. Third, the idea of "program as data": because quotations are just lists, I write metaprograms that build, parse, and rewrite other programs, and apply term rewriting to prove small equivalences and simplify expressions.
I also teach. I run one-on-one sessions and prepare written materials that take a beginner from an empty stack to self-applicable recursion, with problems from simple to genuinely hard. Research experience lets me discuss the algebra of the language, its connection to combinatory logic, and how the stack model differs from lambda calculus.
What you get: commented source code, a test suite for each word, a short project note about composition strategy, and a call to review and discuss. Behind me are years working with concatenative and functional languages and a love for code that stays small, provable, and pleasant to read.
My work runs in several directions. First, development from scratch: I design vocabularies of words, pull common patterns into combinators like map and fold, and into the recursion schemes that Joy is famous for, keeping each definition short and testable. Second, refactoring: I take a grown Joy script and rewrite it in disciplined point-free style so the meaning lives in composition, not side effect. Third, the idea of "program as data": because quotations are just lists, I write metaprograms that build, parse, and rewrite other programs, and apply term rewriting to prove small equivalences and simplify expressions.
I also teach. I run one-on-one sessions and prepare written materials that take a beginner from an empty stack to self-applicable recursion, with problems from simple to genuinely hard. Research experience lets me discuss the algebra of the language, its connection to combinatory logic, and how the stack model differs from lambda calculus.
What you get: commented source code, a test suite for each word, a short project note about composition strategy, and a call to review and discuss. Behind me are years working with concatenative and functional languages and a love for code that stays small, provable, and pleasant to read.