Помогите выбрать подходящую схему реализации - PullRequest
9 голосов
/ 24 августа 2011

Это, кажется, действительно слишком много, чтобы просить, учитывая систематически устаревший контент по этой теме, который разбросан по всему Интернету.

Я просто не могу найти бесшумный и актуальный список доступных реализаций Схемы (кроме там , но я бы наслаждался красочной таблицей суммирования функций), поэтому я спрашиваю сообщество вместо попробовать десятки реализаций языка, которым я еще не владею. Помоги мне насладиться этим удивительным языком.

Требования:

  • Бесплатно (как в речи)
  • Легкий: нет ненужных библиотек, кроме стандартных, должен быстро компилироваться. Все, что легче Guile, считается легким.
  • R6RS (не тролль, пожалуйста, я изучаю язык и чувствую необходимость придерживаться чего-то стандартного)
  • Нет .NET, нет JVM
  • Должно работать как минимум в Linux
  • Должен работать как минимум на x86
  • Easy FFI
  • Бонус за быстрое внедрение (очень жаль, что Bigloo не поддерживает R6RS).

В настоящее время я использую Ypsilon, который я считаю отличным, но не поддерживался с 2008 года. Guile может быть хорошим конкурентом, но он кажется довольно тяжелым (и FFI намного проще с Ypsilon).

Возможно, мне не хватает некоторых качественных реализаций, поэтому не стесняйтесь делиться своим опытом.

ОБНОВЛЕНИЕ Спасибо за ваши ответы, я пойду на Larceny, так как он обеспечивает почти все, что я ищу. Удачного всем вам интрига!

Ответы [ 4 ]

8 голосов
/ 24 августа 2011

Вы можете взглянуть на Ракетка . Его документация и IDE довольно хороши, он JIT-скомпилирован и поддерживает множество языков, включая R 6 RS. Единственное ваше требование, которое я не уверен, что Racket выполняет, - это легкий вес - это вопрос перспективы, правда это или нет.

Если вас не волнует куча функциональных возможностей, которые предоставляет Racket, Larceny также может потребовать рассмотрения. Он был написан Уиллом Клингером, который лично участвовал в процессе R 6 RS. Larceny - одна из самых полных реализаций R 6 RS. Миниатюрная кража может быть сложной для компиляции, но это может не иметь большого значения в зависимости от платформы, на которую вы нацелены.

Наконец, есть схема Chez . У меня нет опыта с этим; однако она имеет репутацию эффективной и хорошо поддерживаемой Схемы. В любом случае, обратите внимание, что, насколько я могу судить, вам нужна коммерческая лицензия, если вы хотите получить доступ к FFI.

Редактировать: Добавлены схемы Ларсения и Чеза.

5 голосов
/ 24 августа 2011

, хотя это может не соответствовать всем вашим требованиям, мне было очень весело с chicken , в котором есть активное сообщество и множество библиотек для практических приложений.

3 голосов
/ 24 августа 2011

Racket (ранее PLT Scheme) является одной из лучших реализаций, активно поддерживается и включает поддержку R 6 RS.

1 голос
/ 21 января 2019

Схема Chez была с открытым исходным кодом и, следовательно, теперь соответствует вашему требованию "свободного" (как в речи) программного обеспечения.Это также чрезвычайно надежная реализация и компилятор с надежным наследием.Он также полностью соответствует R6RS, и автор Кент Дибвиг был одним из управляющих комитетов по стандарту.

Я рекомендую использовать его REPL из Emacs , используя Geiser .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...