Sto imparando lo schema e fino ad ora ho usato l'inganno. In realtà sto solo imparando come un modo per insegnare a me stesso un linguaggio di programmazione funzionale, ma mi piacerebbe pubblicare un progetto open source di qualche tipo per rinforzare lo studio, non so ancora cosa ... Sono uno sviluppatore web, quindi probabilmente qualcosa di webby.Scrittura codice schema portatile. Qualcosa di "standard" oltre alla stessa R5RS?
Sta diventando evidente che il codice dello schema di pubblicazione non è molto facile da fare, con tutte queste diverse implementazioni e nessun standard reale oltre il nucleo del linguaggio stesso (R5RS). Per esempio, ho quasi certamente bisogno di fare IO di base su disco e su un socket TCP, insieme alla manipolazione delle stringhe, come la scansione/regex, che sembra non essere coperta da R5RS, a meno che non lo veda nel documento. Sembra che Scheme sia più un "concetto" che un linguaggio pratico ... è una valutazione corretta? Forse dovrei cercare qualcosa come Haskell se voglio imparare un linguaggio di programmazione funzionale che si presta maggiormente ad essere utilizzato in progetti open source?
In realtà, quanto dolore si pongono le diverse implementazioni di schema quando si desidera pubblicare un progetto open source? Non mi piace davvero dover mantenere 5 funzioni diverse per cose di base come la manipolazione delle stringhe in varie implementazioni mainstream (Chicken, guile, MIT, DrRacket). Quante persone effettivamente scrivono uno schema per la compatibilità di implementazione incrociata, invece di essere strettamente associato alle funzioni di libreria che esistono solo nel proprio schema?
Ho letto http://www.ccs.neu.edu/home/dorai/scmxlate/scheme-boston/talk.html, che non mi riempie di fiducia;)
EDIT | Ridefiniamo "standard" come "comuni".
La tua domanda fa sembrare che pensi che R5RS sia lo standard più attuale per Scheme, ma non è così. R6RS, che gestisce molte delle cose che tu chiedi, è stato pubblicato nel 2009 ed è lo standard attuale dello schema R6RS è ancora troppo piccolo per fare molte cose, quindi probabilmente vorrai seguire una particolare implementazione. Io uso (e sviluppo) Racket, ma Guile è anche una scelta ragionevole. –