2016-02-03 3 views
11

Je suis prêt à apprendre Scheme. Je veux rester fidèle à R7RS car c'est la dernière norme. Cependant, il semble qu'il y ait beaucoup de fragmentation sur les implémentations actuelles de Scheme, et la plupart restent sur R5RS ou une partie de R6RS. Le seul que j'ai trouvé supportant une partie de R7RS est Kawa, mais comme il fonctionne sur JVM, il ne supporte pas l'optimisation des appels de queue, et c'est un point fort contre cette implémentation.A partir de 2016, existe-t-il une implémentation de Scheme qui supporte 100% de R7RS (petit) sans écarts?

Le monde Scheme est-il si fragmenté qu'il n'existe même pas encore d'implémentation complète de R7RS? Je demande, parce que s'il n'y a pas, dès que je rattrape, je prévois d'en construire un; mais, s'il en existe un, il vaudrait mieux ne pas réinventer la roue et contribuer à cette mise en œuvre certaine. S'il vous plaît, si vous avez des informations, j'apprécierais non seulement répondre avec des noms, mais aussi avec de plus amples informations (site officiel de la mise en œuvre ou même un extrait d'un groupe de mailing serait utile comme référence).

Et en passant, je ne considère pas Racket, car ce n'est plus vraiment Scheme.

+0

Ceci est une question bien formulée, spécifique, bien écrite et répondable. Cependant: "** Les questions nous demandant de recommander ou de trouver un livre, un outil, une bibliothèque de logiciels, un tutoriel ou autre ressource hors site sont hors sujet pour Stack Overflow ** car elles tendent à attirer les réponses et les spams." Les réponses à cette question deviendront obsolètes avec le temps (même si vous avez ajouté "En 2016" à la question) et vicié. Ce n'est pas un bon ajustement pour la connaissance "canonique". –

+0

En quoi Racket n'est-il plus un schéma? Question sérieuse. – kristianp

Répondre

12

Le président du comité Small Language de R7RS ("Working Group 1"), Alex Shinn, a créé Chibi Scheme comme standard évolué. Je crois que c'est entièrement conforme. C'est un compilateur bytecode.

Larceny a un mode R7RS principalement (totalement?) Conforme et compile en code machine.

J'ai joué avec Picrin qui vise à la conformité R7RS, et est très très proche. C'est un compilateur bytecode.

Un list of implementations qui vise la conformité R7RS au wiki du comité comprennent:

  • Chibi
  • Poulet (partielle)
  • Foment
  • Gauche
  • Guile (partielle)
  • Enveloppe
  • Kawa
  • Larceny
  • Mosh (partielle)
  • Picrin
  • Sagittaire
+0

J'ai trouvé certains de ceux de la liste ci-dessus, mais il y en a beaucoup qui n'ont pas été mis à jour depuis 2015 (comme Foment) ou Gauche (2014). Cependant, Chibi semble vraiment être 100% conforme. Je vais jeter un coup d'oeil et sur cette base, choisissez votre réponse. – addictedtohaskell

+0

En effet, Chibi Scheme est entièrement conforme à la norme R7RS. En outre, il a plusieurs SRFI mis en œuvre, ce qui en fait la meilleure option maintenant, et je l'espère depuis longtemps. – addictedtohaskell

+1

Gauche est activement développé et déjà conforme à R7RS sauf quelques cas mineurs. Juste l'auteur (moi) est trop paresseux pour faire des sorties. – shirok

4

Bien que la question exclut explicitement Racket de considération ne pas être le schéma I soulignerons Racket package "R7RS" qui implémente R7Rs petit.

Il y a quelques petites incompatibilités documentées sur la page du projet.