Acerca del servicio
TraducidoDesarrollo programas en Joy, un lenguaje concatenativo puramente funcional donde los programas enteros se construyen a partir de la composición de funciones, con funciones que pasan una única pila entre sí. No hay variables nombradas ni complicaciones de lambda: apilo pequeños combinadores en grandes, y todo el programa se lee como un flujo de datos honesto. Si necesitas un procedimiento de pila, un conjunto de citas reutilizables, o una reestructuración limpia y sin puntos de lógica enredada, lo haré.
Mi trabajo se desarrolla en varias direcciones. Primero, desarrollo desde cero: diseño vocabularios de palabras, extraigo patrones comunes en combinadores como map y fold, y en los esquemas de recursión por los que Joy es famoso, manteniendo cada definición corta y comprobable. Segundo, refactorización: tomo un script de Joy desarrollado y lo reescribo en un estilo disciplinado sin puntos para que el significado resida en la composición, no en efectos secundarios. Tercero, la idea de "programa como datos": dado que las citas son solo listas, escribo metaprogramas que construyen, analizan y reescriben otros programas, y aplico la reescritura de términos para probar pequeñas equivalencias y simplificar expresiones.
También enseño. Realizo sesiones uno a uno y preparo materiales escritos que llevan a un principiante de una pila vacía a la recursión autoaplicable, con problemas que van de simples a genuinamente difíciles. La experiencia en investigación me permite discutir el álgebra del lenguaje, su conexión con la lógica combinatoria y cómo el modelo de pila difiere del cálculo lambda.
Lo que obtienes: código fuente comentado, un conjunto de pruebas para cada palabra, una breve nota de proyecto sobre la estrategia de composición y una invitación a revisar y discutir. Detrás de mí hay años de trabajo con lenguajes concatenativos y funcionales y un amor por el código que se mantiene pequeño, comprobable y agradable de leer.
Mi trabajo se desarrolla en varias direcciones. Primero, desarrollo desde cero: diseño vocabularios de palabras, extraigo patrones comunes en combinadores como map y fold, y en los esquemas de recursión por los que Joy es famoso, manteniendo cada definición corta y comprobable. Segundo, refactorización: tomo un script de Joy desarrollado y lo reescribo en un estilo disciplinado sin puntos para que el significado resida en la composición, no en efectos secundarios. Tercero, la idea de "programa como datos": dado que las citas son solo listas, escribo metaprogramas que construyen, analizan y reescriben otros programas, y aplico la reescritura de términos para probar pequeñas equivalencias y simplificar expresiones.
También enseño. Realizo sesiones uno a uno y preparo materiales escritos que llevan a un principiante de una pila vacía a la recursión autoaplicable, con problemas que van de simples a genuinamente difíciles. La experiencia en investigación me permite discutir el álgebra del lenguaje, su conexión con la lógica combinatoria y cómo el modelo de pila difiere del cálculo lambda.
Lo que obtienes: código fuente comentado, un conjunto de pruebas para cada palabra, una breve nota de proyecto sobre la estrategia de composición y una invitación a revisar y discutir. Detrás de mí hay años de trabajo con lenguajes concatenativos y funcionales y un amor por el código que se mantiene pequeño, comprobable y agradable de leer.