О, занятно. Только из README я не одно не понял - зачем оно нужно, если есть CFFI? Во что мы будет маршаллить лисповые объекты и что с ними будет делаться и как по ту сторону FFI?
>зачем оно нужно, если есть CFFI?
CFFI слишком низкоуровневое, мало расширяемое, и не маршалит аггрегированные типы.
Во что мы будет маршаллить лисповые объекты и что с ними будет делаться и как по ту сторону FFI?
Маршаллить в неуправляемую память. А что будет делаться - это смотря как и что маршаллить. Там есть несколько встроенных алгоритмов маршаллинга - для структур, или массивов, например - они в памяти представляются как сишные структуры и массивы соответственно. «Та сторона FFI» их может изменять, и мы можем наблюдать изменения на стороне лиспа(это достигается с помощью «ссылок»; кстати, можем и не наблюдать, если указали что маршаллинг только в одну сторону).
Тех, кто решит изучать это ваш хвалёный лисп, и столкнётся с необходимостью выбора IDE. Нормальной бесплатной IDE, как уже говорил, нет, а ваш хвалёный емакс, который в каждую дыру суют, обладает удобностью управления, как у угольного паровоза.
lisp-in-box и вся недолга, как ловкое приложение к небезызвестной книге П. Сайбеля + все куски кода оттуда
>А пакетов хватает для тех целей, для которых они предназначаются(коллекции символов)(не, ну круто конечно было бы иерархические пакеты, да).
Ну если посмотреть, то система пакетов по современным меркам имеет ряд неприятностей. Например, то, что никнеймы определяются в исходном пакете, а не в целевом пакете, плохое поведение defpackage при несовпадении набора экспортируемых символов, кривое разрешение конфликтов имен при импорте.
>не заметил тормозов (в сравнение с дефолтной PLT) в Swindle
А если сравнивать с CLOS в SBCL?
система модулей PLT позволяет настраивать readtable для каждого модуля отдельно
Это уже не схема, это Racket, или как его там. Я про то, что есть в стандарте. Понятно, что реализации идут кто во что горазд, и в т.ч. добавляют CL-подобные фичи.
Я в данный момент в час по чайной ложке учу одновременно cl, clojure и scheme, плюс мелкие поделки для емакса. Но все это на достаточно примитивном уровне. Учу уже давно и еще дольше буду доходить до кондиции, чтобы суметь написать что-либо серьезное. Но языки мне очень нравятся. Хоть я и всегда не прочь потроллить на эту тему :)
Scheme. Изучается во всех порядочных университетах, хороший, развивающийся стандарт, SRFI, простота(в т.ч. создания нового компилятора), намного лучшая совместимость между реализациями, человеческие FFI, batteries included во всех основных реализациях, сильно меньшее количество слабоумных в сообществе, прекрасная свободная IDE (drRacket, хотя эмакс никто не отменял конечно), официальный язык расширений GNU. Если не нужны сильно навороченные фичи CLOS, макры чтения, опциональная типизация SBCL, CL использовать незачем.
>Тех, кто решит изучать это ваш хвалёный лисп, и столкнётся с необходимостью выбора IDE. Нормальной бесплатной IDE, как уже говорил, нет, а ваш хвалёный емакс, который в каждую дыру суют, обладает удобностью управления, как у угольного паровоза.
> Сравни подачу материала с тем, как это делается в PCL. В последнем первые пол книги в каждом разделе куча оговорок типа «это вот так, потому что это так, а что это зачем и почему я объясню позднее». В СИКПе же такого и близко нет, объяснили порядок редукции лямбда-термов и попёхали программить в полный рост.
+1, мне тоже это в PCL очень не понравилось. Автор слишком сильно ударился в «практичность», уже во второй главе (не считая введения) рвётся писать «БД на коленке», без достаточно глубокого понимания что там и как происходит, из-за чего читателю начинает казаться, что CL отличается от остальных «традиционных» языков только обилием скобок. У меня лично на этом месте желание читать PCL дальше вообще пропало (хорошо, что не пропало желание изучить CL...).
>> +1, мне тоже это в PCL очень не понравилось. Автор слишком сильно ударился в «практичность», уже во второй главе (не считая введения) рвётся писать «БД на коленке», без достаточно глубокого понимания что там и как происходит, из-за чего читателю начинает казаться, что CL отличается от остальных «традиционных» языков только обилием скобок. У меня лично на этом месте желание читать PCL дальше вообще пропало (хорошо, что не пропало желание изучить CL...).
для таких как ты там специально написано: The point of this chapter isn’t that this is how
you would write a database in Lisp; rather, the point is for you to get an idea of what programming
in Lisp is like and to see how even a relatively simple Lisp program can be quite featureful.
И если ты читал эту главу внимательно, то наверное обратил внимание на то, что там тебя знакомят с замыканиями, макросами, IO lisp-way, определениями функций и т.д., что потом разжевывается на протяжении всей книги. Ты ее дочитал хотя бы?
А вообще это пипец - логика: CL гумно, потому что ниасилил PCL...