Sobre o serviço
TraduzidoEu desenvolvo programas em Joy — uma linguagem concatenativa puramente funcional onde programas inteiros são construídos a partir da composição de funções, com funções passando uma única pilha umas para as outras. Não há variáveis nomeadas e nem complicações com lambda: eu empilho pequenos combinadores em grandes, e o programa inteiro lê como um fluxo de dados honesto. Se você precisa de um procedimento de pilha, um conjunto de citações reutilizáveis, ou uma reestruturação limpa de lógica emaranhada — eu farei isso.
Meu trabalho segue várias direções. Primeiro, desenvolvimento do zero: eu projeto vocabulários de palavras, extraio padrões comuns em combinadores como map e fold, e nos esquemas de recursão pelos quais Joy é famoso, mantendo cada definição curta e testável. Segundo, refatoração: eu pego um script Joy desenvolvido e o reescrevo em um estilo disciplinado sem ponto, de modo que o significado viva na composição, não em efeitos colaterais. Terceiro, a ideia de "programa como dados": porque citações são apenas listas, eu escrevo metaprogramas que constroem, analisam e reescrevem outros programas, e aplico reescrita de termos para provar pequenas equivalências e simplificar expressões.
Eu também ensino. Eu conduzo sessões individuais e preparo materiais escritos que levam um iniciante de uma pilha vazia a recursão autoaplicável, com problemas que vão do simples ao genuinamente difícil. A experiência em pesquisa me permite discutir a álgebra da linguagem, sua conexão com a lógica combinatória, e como o modelo de pilha difere do cálculo lambda.
O que você recebe: código-fonte comentado, um conjunto de testes para cada palavra, uma breve nota de projeto sobre a estratégia de composição, e um convite para revisar e discutir. Atrás de mim estão anos de trabalho com linguagens concatenativas e funcionais e um amor por código que permanece pequeno, comprovável e agradável de ler.
Meu trabalho segue várias direções. Primeiro, desenvolvimento do zero: eu projeto vocabulários de palavras, extraio padrões comuns em combinadores como map e fold, e nos esquemas de recursão pelos quais Joy é famoso, mantendo cada definição curta e testável. Segundo, refatoração: eu pego um script Joy desenvolvido e o reescrevo em um estilo disciplinado sem ponto, de modo que o significado viva na composição, não em efeitos colaterais. Terceiro, a ideia de "programa como dados": porque citações são apenas listas, eu escrevo metaprogramas que constroem, analisam e reescrevem outros programas, e aplico reescrita de termos para provar pequenas equivalências e simplificar expressões.
Eu também ensino. Eu conduzo sessões individuais e preparo materiais escritos que levam um iniciante de uma pilha vazia a recursão autoaplicável, com problemas que vão do simples ao genuinamente difícil. A experiência em pesquisa me permite discutir a álgebra da linguagem, sua conexão com a lógica combinatória, e como o modelo de pilha difere do cálculo lambda.
O que você recebe: código-fonte comentado, um conjunto de testes para cada palavra, uma breve nota de projeto sobre a estratégia de composição, e um convite para revisar e discutir. Atrás de mim estão anos de trabalho com linguagens concatenativas e funcionais e um amor por código que permanece pequeno, comprovável e agradável de ler.