Еще две копейки. Где-то есть эмуляторы как минимум двух старых исторических Лисп-машин с их родной операционной системой. Мне удавалось их запускать ради интереса на Линуксе, но не помню уже, где они валяются и как запускаются. Довольно много было возни с настройками.
Еще также коммерческий эмулятор последней (кажется?) Лисп-машины с ОС Genera 2.0. Вот тут инструкции по его настройке:
Еще интересная вещь: Hy, Лисп для Питона, т.е. по сути Питон, но с синтаксисом, макросами и прочими фишками Лиспа. Пока альфа-версия, но вполне работает.
Вы три разных языка перечислили: Common Lisp, Scheme и Clojure, под разными платформами.
1. ABCL - тормозная глюковатая версия Common Lisp, работающая под Джавой. Не вполне совместим, как быстро выясняется, с хорошо известными реализациями CL. Создан, наверное, чтобы легко портировать код, поскольку работает в Java. Морально устарел еще в процессе создания. :)
2. Kawa - Scheme под Джавой. Удобен для написания умных скриптов для сцепления кусков кода для Джавы, вряд ли для чего-либо другого.
3. Racket - всякая всячина, написанная годами сотнями студентов на Scheme. Вообще не язык в нормальном смысле, но площадка для игр по созданию своих языков (как правило, глючных и недоделанных).
4. Guile - шустрый Scheme. Годится для скриптов и вставления в код, написанный на C/C++. Для этого и предназначен, а не как полноценный самостоятельный язык.
5. Clojure - отличный современный Лисп, но увязанный тоже с Java и несколько отличающийся от CL. Есть урезанная версия под Javascript, но я ничего толком о ней сказать не могу.
6. SBCL - лучшая из бесплатных реализаций CL, практически ничем не хуже распиаренных дорогих LispWorks и Allegro Lisp. Очень быстрый, примерно как C++, если разбираться в оптимизации и использовать массивы вместо списков, содержит даже ассемблер, когда нужна предельная скорость. Помимо стандартного CL, там множество специфического для каждой архитектуры, включая ARM. Я его и на телефоне часто запускаю. Недостатки: много глючных и устаревших библиотек, авторы которых зачастую думают: а что, человек прочитает код и сам допишет. Встречался с таким не раз на американских форумах. А так, я его и в качестве калькулятора использую. Очень удобно. Есть еще CCL (Closure Common Lisp, не путать с Clojure). Раза в два помедленней, заточен больше для Маков, но тоже хороший.
Макросы. В принципе они очень простые, что в CL, что в Racket, что в Clojure, но для глубокого понимания нужно их годами изучать. Я лично знаю довольно плохо, а есть примеры высшего пилотажа, которые выглядят как колдовство 10000-го уровня.
Синтаксиса как бы нет, но у функций масса параметров в определенном порядке, а для приличного программирования надо соображать, как, где и что оптимально использовать. В любом языке главное это, а не синтаксис. Он везде более менее простой. В Прологе, например, тоже можно свести к 3-4 правилам, но от этого переход с C на Пролог проще не становится.
Racket - это метаязык, в котором реализован и Алгол, и всякие специфические языки. Это площадка для опытов с экспериментальным синтаксисом. Скажем, можете там по приколу написать Бейсик. Базовый язык там Scheme, на на нем столько там всего наворочено, что легко запутаться. Собственно, Racket - это вообще не язык, но нагромождение всякой всячины, написанной годами на Scheme. Есть там, например, язык презентаций, что-то вроде игрушки по мотивам PowerPoint. Я как-то пытался создать там презентацию. Обычно пользуюсь для этого LibreOffice. Оказалось, что это какой-то недоделанный малопонятный проект. В Racket напихано много такого. Это все равно, что одновременно изучать нормальный Лисп (Scheme), Пролог (вставлена там недоделанная лиспообразная версия), SQL, SDL для 3-мерной графики и много, много прочего. И особенно "радует" отсутствие человеческой документации. Если человек не знаком вообще ни с каким Лиспом, как он поймет код этих нагромождений?
В Racket имеет смысл практиковаться в написании кода на обычном Scheme. Во всяких напридуманных там языках, я бы сказал, не высокий порог входа, но чертовски плохая документация. В значительной мере, если не большей частью, вообще никакая. А в режиме Scheme подходит и 8-летним детям, чтобы "черепашкой" рисовать, как в Лого.
Для простых смертных, кто про эту знаменитую плату только читал, есть эмулятор под Линуксом:
https://archives.loomcom.com/genera/genera-install.html
Еще две копейки. Где-то есть эмуляторы как минимум двух старых исторических Лисп-машин с их родной операционной системой. Мне удавалось их запускать ради интереса на Линуксе, но не помню уже, где они валяются и как запускаются. Довольно много было возни с настройками.
Еще также коммерческий эмулятор последней (кажется?) Лисп-машины с ОС Genera 2.0. Вот тут инструкции по его настройке:
https://archives.loomcom.com/genera/genera-install.html
Вполне работает. Можете какое-нибудь старье превратить таким образом в сервер на Лисп-машине!
Еще интересная вещь: Hy, Лисп для Питона, т.е. по сути Питон, но с синтаксисом, макросами и прочими фишками Лиспа. Пока альфа-версия, но вполне работает.
А вот такое же примерно для Erlang.
Несколько урезанный Scheme встроен также в Gimp. Удобно писать скрипты для автоматического преобразования кучи картинок по какому-то алгоритму, и т.п.
О, вот это интересно! Т.е. не нужно просить авторов Quicklisp, чтобы добавить туда свой проект?
Вы три разных языка перечислили: Common Lisp, Scheme и Clojure, под разными платформами.
1. ABCL - тормозная глюковатая версия Common Lisp, работающая под Джавой. Не вполне совместим, как быстро выясняется, с хорошо известными реализациями CL. Создан, наверное, чтобы легко портировать код, поскольку работает в Java. Морально устарел еще в процессе создания. :)
2. Kawa - Scheme под Джавой. Удобен для написания умных скриптов для сцепления кусков кода для Джавы, вряд ли для чего-либо другого.
3. Racket - всякая всячина, написанная годами сотнями студентов на Scheme. Вообще не язык в нормальном смысле, но площадка для игр по созданию своих языков (как правило, глючных и недоделанных).
4. Guile - шустрый Scheme. Годится для скриптов и вставления в код, написанный на C/C++. Для этого и предназначен, а не как полноценный самостоятельный язык.
5. Clojure - отличный современный Лисп, но увязанный тоже с Java и несколько отличающийся от CL. Есть урезанная версия под Javascript, но я ничего толком о ней сказать не могу.
6. SBCL - лучшая из бесплатных реализаций CL, практически ничем не хуже распиаренных дорогих LispWorks и Allegro Lisp. Очень быстрый, примерно как C++, если разбираться в оптимизации и использовать массивы вместо списков, содержит даже ассемблер, когда нужна предельная скорость. Помимо стандартного CL, там множество специфического для каждой архитектуры, включая ARM. Я его и на телефоне часто запускаю. Недостатки: много глючных и устаревших библиотек, авторы которых зачастую думают: а что, человек прочитает код и сам допишет. Встречался с таким не раз на американских форумах. А так, я его и в качестве калькулятора использую. Очень удобно. Есть еще CCL (Closure Common Lisp, не путать с Clojure). Раза в два помедленней, заточен больше для Маков, но тоже хороший.
LISt Processor
Макросы. В принципе они очень простые, что в CL, что в Racket, что в Clojure, но для глубокого понимания нужно их годами изучать. Я лично знаю довольно плохо, а есть примеры высшего пилотажа, которые выглядят как колдовство 10000-го уровня.
Синтаксиса как бы нет, но у функций масса параметров в определенном порядке, а для приличного программирования надо соображать, как, где и что оптимально использовать. В любом языке главное это, а не синтаксис. Он везде более менее простой. В Прологе, например, тоже можно свести к 3-4 правилам, но от этого переход с C на Пролог проще не становится.
Racket - это метаязык, в котором реализован и Алгол, и всякие специфические языки. Это площадка для опытов с экспериментальным синтаксисом. Скажем, можете там по приколу написать Бейсик. Базовый язык там Scheme, на на нем столько там всего наворочено, что легко запутаться. Собственно, Racket - это вообще не язык, но нагромождение всякой всячины, написанной годами на Scheme. Есть там, например, язык презентаций, что-то вроде игрушки по мотивам PowerPoint. Я как-то пытался создать там презентацию. Обычно пользуюсь для этого LibreOffice. Оказалось, что это какой-то недоделанный малопонятный проект. В Racket напихано много такого. Это все равно, что одновременно изучать нормальный Лисп (Scheme), Пролог (вставлена там недоделанная лиспообразная версия), SQL, SDL для 3-мерной графики и много, много прочего. И особенно "радует" отсутствие человеческой документации. Если человек не знаком вообще ни с каким Лиспом, как он поймет код этих нагромождений?
В Racket имеет смысл практиковаться в написании кода на обычном Scheme. Во всяких напридуманных там языках, я бы сказал, не высокий порог входа, но чертовски плохая документация. В значительной мере, если не большей частью, вообще никакая. А в режиме Scheme подходит и 8-летним детям, чтобы "черепашкой" рисовать, как в Лого.
Это не на смену bash, а чтобы писать шелл прямо в REPL. Не совсем понятно, зачем это вообще нужно, если можно просто запускать bash из Java-машины.