Informazioni sul servizio
TradottoSviluppo programmi in Joy — un linguaggio concatenativo puramente funzionale in cui interi programmi sono costruiti dalla composizione di funzioni, con funzioni che passano uno stack singolo l'una all'altra. Non ci sono variabili nominate e nessun problema di lambda: impilo piccoli combinatori in grandi, e l'intero programma si legge come un flusso di dati onesto. Se hai bisogno di una procedura di stack, un insieme di citazioni riutilizzabili, o una rielaborazione ordinata di logica ingarbugliata — lo farò.
Il mio lavoro si sviluppa in diverse direzioni. Prima, sviluppo da zero: progetto vocabolari di parole, estraggo schemi comuni in combinatori come map e fold, e nei schemi di ricorsione per cui Joy è famoso, mantenendo ogni definizione breve e testabile. Secondo, rifattorizzazione: prendo uno script Joy cresciuto e lo riscrivo in uno stile disciplinato senza punti affinché il significato risieda nella composizione, non negli effetti collaterali. Terzo, l'idea di "programma come dati": poiché le citazioni sono solo liste, scrivo metaprogrammi che costruiscono, analizzano e riscrivono altri programmi, e applico la riscrittura di termini per dimostrare piccole equivalenze e semplificare espressioni.
Insegno anche. Conduco sessioni individuali e preparo materiali scritti che portano un principiante da uno stack vuoto a una ricorsione auto-applicabile, con problemi da semplici a genuinamente difficili. L'esperienza di ricerca mi consente di discutere l'algebra del linguaggio, la sua connessione con la logica combinatoria e come il modello di stack differisca dal calcolo lambda.
Cosa ottieni: codice sorgente commentato, una suite di test per ogni parola, una breve nota di progetto sulla strategia di composizione e una chiamata a rivedere e discutere. Dietro di me ci sono anni di lavoro con linguaggi concatenativi e funzionali e un amore per il codice che rimane piccolo, dimostrabile e piacevole da leggere.
Il mio lavoro si sviluppa in diverse direzioni. Prima, sviluppo da zero: progetto vocabolari di parole, estraggo schemi comuni in combinatori come map e fold, e nei schemi di ricorsione per cui Joy è famoso, mantenendo ogni definizione breve e testabile. Secondo, rifattorizzazione: prendo uno script Joy cresciuto e lo riscrivo in uno stile disciplinato senza punti affinché il significato risieda nella composizione, non negli effetti collaterali. Terzo, l'idea di "programma come dati": poiché le citazioni sono solo liste, scrivo metaprogrammi che costruiscono, analizzano e riscrivono altri programmi, e applico la riscrittura di termini per dimostrare piccole equivalenze e semplificare espressioni.
Insegno anche. Conduco sessioni individuali e preparo materiali scritti che portano un principiante da uno stack vuoto a una ricorsione auto-applicabile, con problemi da semplici a genuinamente difficili. L'esperienza di ricerca mi consente di discutere l'algebra del linguaggio, la sua connessione con la logica combinatoria e come il modello di stack differisca dal calcolo lambda.
Cosa ottieni: codice sorgente commentato, una suite di test per ogni parola, una breve nota di progetto sulla strategia di composizione e una chiamata a rivedere e discutere. Dietro di me ci sono anni di lavoro con linguaggi concatenativi e funzionali e un amore per il codice che rimane piccolo, dimostrabile e piacevole da leggere.