С 2016 года существует ли реализация схемы, которая поддерживает 100% R7RS (малая) без отклонений?
Я готов изучить Схему. Я хочу придерживаться R7RS, так как это последний стандарт. Однако, похоже, что существует много фрагментации в текущих реализациях Схемы, и большинство из них остаются в R5RS или частично R6RS.
Единственный, который я нашел, поддерживает часть R7RS - это Kawa, но, поскольку он работает на JVM, он не поддерживает оптимизацию хвостовых вызовов, и это является сильной стороной для этой реализации.
Действительно ли мир Scheme настолько фрагментирован, что еще нет полной реализации R7RS? Я спрашиваю, потому что, если нет, как только я догоню, я планирую построить его; но, если таковой существует, было бы лучше не изобретать колесо и не вносить вклад в эту определенную реализацию.
Пожалуйста, если у вас есть информация, я был бы признателен не только ответить на имена, но и получить дополнительную информацию (официальный сайт реализации или даже выписка из группы рассылки будет полезной в качестве ссылки).
И, кстати, я не рассматриваю Racket, так как это еще не схема.
Ответы
Ответ 1
Председатель комитета малых языков R7RS (" Рабочая группа 1 ") Алекс Шинн создал схему Chibi по мере развития стандарта. Я считаю, что это полностью соответствует. Это компилятор байт-кода.
Larceny имеет в основном (полностью?) Совместимый режим R7RS и компилируется в машинный код.
Я играл с Picrin, который нацелен на соответствие R7RS, и очень очень близок. Это компилятор байт-кода.
Список реализаций, нацеленных на соответствие R7RS в вики комитета, включает:
- Chibi
- Цыпленок (частичный)
- разжигать
- неловкий
- Хитрость (частичная)
- шелуха
- Кава
- воровство
- Мош (частично)
- Picrin
- Стрелец
Ответ 2
Хотя вопрос явно исключает Racket из рассмотрения как не являющуюся Схемой, я укажу на пакет Racket "R7RS", который реализует небольшие R7R.
На странице проекта задокументированы некоторые небольшие несовместимости.