Яка найкраща реалізація схеми або LISP для OS X?


86

Я шукаю версію Scheme або навіть LISP, яку я можу використати для відновлення деяких втрачених навичок розвитку Lisp. Деякі веб-можливості були б непоганими, але не важливими.

Я розглянув схеми Plt та MIT, і, хоча обидва вони виглядають досить добре, Plt, здається, має більше можливостей. Я також розглядав реалізації Lisp, але все здається досить дорогим.

Я віддаю перевагу безкоштовним / недорогим реалізаціям, оскільки це справді може бути випадковим хобі-програмуванням. Які рекомендації ви б дали?


6
Зверніть увагу, що схема PLT змінила назву на Racket.
soegaard

сильно пов'язаний з цим питання: stackoverflow.com/questions/2485859
pnkfelix

2
Чому це питання не було закрите, а майже всі інші подібні?
Ерік Каплун,

Відповіді:


71

Я пішов би з Рекет. Можливо, це не так швидко, як SBCL, але у нього є відмінні бібліотеки та документація, а також інтегроване середовище, розроблене для того, щоб змусити вас розробляти та запускати програми Scheme прямо з ворота. Мені дуже подобається в IDE Racket, DrRacket, те, що вам не потрібно робити - вам не потрібно вивчати Emacs, вам не потрібно вчитися SLIME, вам не потрібно турбуватися про полювання на третіх - сторонні бібліотеки, оскільки практично всі бібліотеки, призначені для Racket, можна знайти в пакетах . Загалом, це дійсно скорочує криві навчання та дозволяє зосередитись на актуальному завданні: написанні чудового коду.

Крім того, він постачається з веб-сервером, якщо ви хочете створювати веб-сайти, що працюють на ракетках (які я зараз розглядаю).


1
Я вибрав PLT більш-менш випадково кілька тижнів тому, і поки що я дуже задоволений своїм вибором. Як ви вже сказали, безліч бібліотек та документації, корисних інструментів.
Slartibartfast

Спасибі, гм, нікому. Я більше зосереджений на інструментах та документації, ніж на швидкості, тому я йду з PLT.
Mark Brittingham

1
Вірна думка. DrScheme створений з огляду на освіту, яка має деякі переваги (прості у використанні та документально підтверджені), але також має і мінуси; якщо ви не проходите HtDP ( htdp.org ), найкраще ігнорувати навчальні мови та використовувати Модуль для всього.
Kyle Cronin

На додаток до того, що зараз його називають Racket, тепер існує нова система пакунків та каталог пакунків, яка зараз є переважною перед Planet для більшості випадків використання.
Джек

22

Я трохи експериментував із цим.

Clozure Common Lispдівоцтві Open MCL) на сьогоднішній день є найшвидшим; На 25-30 відсотків швидше, ніж наступний конкурент на моєму Intel Mac Mini.

Схема MIT досить добре працює на Mac. Думаю, врешті-решт я сам її склав, але на цьому сайті є двійкові файли. Схема PLT також приємна і, можливо, трохи краще інтегрована у світ Mac. (Схема PLT тепер відома як Racket , але я не експериментував з нею після зміни.)


2
майже все, що я спробував; загалом це були важкі маніпуляції зі списками та інтенсивне використання loopмакросу.
Charlie Martin

1
Можливо, хочу зауважити, що CCL, здається, не працює на 32-розрядному Intel, тому мій Mac Mini трохи старий для нього.
Девід Торнлі

16

Я шанувальник Clojure, SBCL та Clozure CL. Всі вони фантастичні, але вони також надмірні, якщо все, що ви хочете зробити, - це освіжити свої відбивні з Лиспінга. Всі вони вимагають абсурдних обсягів пошуку інформації, пошуку списків розсилки, встановлення пакунків, приховування irc тощо.

Dr Scheme просто встановлює та запускає. Я закінчив перші 3 розділи SICP чотири з половиною роки тому, використовуючи доктора Схему. Ніщо не було так глибоким, як визначення самого оцінювача Схем. Як тільки ви обдумаєте, ви матимете набагато більше терпіння до братів, що займаються промисловою силою.


3
Насправді мені більше нічого не потрібно було для мого налаштування Ubuntu-SBCL-SLIME-stumpwm. Для початківців, практичний загальнодоступний текст і CLHS - все, що вам потрібно, і це приносить вам довгий шлях.
Svante

15

Для Scheme DrRacket є чудовим (входить до складу Racket ).

Для Common Lisp « Ready Lisp» чудово підходить. Одноразовий дозатор з SBCL, Aquamacs та Slime, що працюють з коробки.

З веб-сайту:

Ready Lisp - це поєднання декількох популярних загальних пакетів Lisp, особливо для Mac OS X, включаючи: Aquamacs, SBCL та SLIME. Після завантаження ви отримаєте єдиний пакет програм, на якому ви зможете двічі клацнути - і опинитесь у повністю налаштованому Common Lisp REPL.

Він ідеально підходить для користувачів OS X, які хочуть випробувати красу Common Lisp з мінімальними клопотами. Він також може бути використаний викладачами, щоб надати своїм студентам Mac безкоштовне, повне середовище Common Lisp, яке вони можуть брати з собою додому. Вимоги

Поточна версія Ready Lisp - 20090127 і вимагає Mac OS X 10.5 (Leopard).

Він включає наступні версії програмного забезпечення компонентів:

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

Залежно від того, як ви визначаєте "Lisp", Clojure може відповідати рахунку. Він працює в ОС X X (працює в будь-якому місці, де працює JVM). Він має веб-можливості, і це безкоштовно.

Він також має перевагу бути новими, свіжими та цікавими у використанні. Може бути ідеальним для програмування на хобі. Легко писати веб-програми або програми з графічним інтерфейсом (за допомогою Swing Java або навіть Qt).


4

Я сам цим не користувався, але Steel Bank Common Lisp отримав кілька сприятливих новин на reddit. Це з відкритим кодом і безкоштовно, тому ціна підходить для деяких програм для хобі.

Раніше на моєму macbook pro працював GNU Common Lisp .


4

Якщо ви шукаєте схему, ви можете поглянути на щойно випущену JazzScheme .


4

Я рекомендую Racket новим відвідувачам, оскільки він надає одну з найкрасивіших IDE для початківців Scheme (вірніше, програмістів-початківців, які випадково використовують Scheme, або ще краще, працюючи через HtDP).

http://racket-lang.org/

Іншим варіантом для людей, яких більше цікавить невелика система Scheme, щоб її самостійно модифікувати або прочитати її вихідний код, є Larceny Scheme, яка представляє інтерес здебільшого тому, що її компілятор JIT, Twobit, сам реалізований повністю в Scheme.

http://www.larcenists.org/


Оновлення: Крім того, нещодавно Схема Chez була відкрита:

https://github.com/cisco/ChezScheme

(Він може бути не таким "маленьким", як Larceny, але у нього дуже агресивний оптимізатор-компілятор.)


на веб-сайті вони, схоже, згадують лише власний компілятор, компілятор до-C та реалізацію CLR - де такий JIT?
Ерік Каплун,

Власний компілятор - це JIT.
pnkfelix

(тобто він динамічно компілює кожен вираз Схеми, який ви подаєте його за допомогою "завантаження" або REPL в машинний код x86. JIT тут означає "вчасно"; це не пов'язано з Java та JVM, на випадок, якщо це те, що ви думав, я мав на увазі JIT)
pnkfelix

Я не думав, що це має якесь відношення до Java; просто на домашній сторінці написано "компілюється безпосередньо до власного машинного коду" , і не так зазвичай описуються JM-компіляційні віртуальні машини / інтерпретатори.
Ерік Каплун,

1
Щоб відповісти на ваше запитання, ви дійсно не можете отримати автономний двійковий файл від Larceny, як він стоїть зараз. Ви можете завантажити своє джерело Схеми, а потім серіалізувати його купу (зі скомпільованим кодом) до зображення купи, але навіть тоді Вам все одно доведеться перерозподілити файл купи та двійковий файл часу виконання як окремі файли. Я розглядав спроби спростити злиття двох в єдине двійкове зображення, але ніколи не робив різкого кроку.
pnkfelix


2

Якщо ви просто хобі програмування, LispWorks має безкоштовну особисту версію, яка є досить потужною та вишуканою. Найбільша проблема - це обмеження часу роботи на кілька годин. Отже, ви не будете писати на ньому будь-які тривалі сервери, але це не означає, що це не корисний інструмент.

CLISP працює майже на всьому, і насправді дуже приємно, він просто не робить потоків. (Важливо, якщо ви хочете написати власне сервер, але, як показали нам PHP та Perl, Apache + [вставка мови] є дуже життєздатною платформою.)



1

Останнім часом я задаю собі те саме питання. Використовуючи DrScheme в OS X, це був би мій перший вибір розподілу схем для будь-якої платформи. Дуже приємна IDE, функції налагодження та гарний набір бібліотек / фреймворків (включаючи дуже приємний графічний інтерфейс, який "просто працює ... навіть на Mac" ;-))

Однак зараз я шукаю таке ж комфортне середовище для Common Lisp. Це дійшло до CCL (OpenMCL) проти SBCL. SBCL, здається, популярний вибір, але я читав, що в OS X не підтримує потокову роботу. (Це справді проблема?). З іншого боку, Clozure CL може похвалитися хорошою підтримкою власних потоків, obcj-моста тощо ...

Я вважаю CCL трохи дивним, але я буду дотримуватися його деякий час - це все одно виглядає як логічний вибір для інтеграції.

Я використовую Emacs 23 (побудований із джерела за допомогою --with-ns) та Slime як середовище, і це добре для мене працює. :-)


1

Я виявив, що Курка добре працює для Схеми і доступна на домашній мові.

brew install chicken

Більшість коду від SICP працює з незначними змінами.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.