YLISP 3.7 WIN32
Y L i s p 3.7 = Недостающие стандартные средства Коммон Лиспа = В данном файле перечисляются наиболее значительные пробелы данной реа- лизации языка Коммон Лисп по сравнению со стандартом [CLTL]. Несогласо- ванности по объектно-ориентированному расширению можно найти в файле CLOS.TXT. Отсутствующие встроенные типы данных ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ARRAY Не поддерживаются настраиваемые (adjustable) массивы и массивы, смещенные относительно существующих (displaced-to). BIT-VECTOR Тип `битовый вектор'. COMPLEX Тип комплексных чисел не совсем полон. PATHNAME Тип имен путей файлов, хотя функции merge-pathnames, make-pathname и pathname-name с друзьями наличествуют и оперируют обычными Лисп-строками, которые представляют пути файлов. PACKAGE Тип пакетов, т.е. пространств имен символов, хотя функции apropos, apropos-list и intern допускают в качестве необяза- тельного аргумента имена `виртуальных' пакетов: lisp, user и keyword. RATIO Тип дробно-рациональных чисел. INTEGER Целые числа имеются, но их максимальная длина 32/64 бита, в зависимости от сборки. READTABLE В системе наличествует лишь одна встроенная таблица чтения, которая всем знакам с ASCII-кодами, большими 127, приписывает синтаксический тип `составляющий' (constituent). RANDOM-STATE Тип `состояние генератора случайных чисел' не поддерживается, хотя в системе имеются генератор равномерно распределенных случайных чисел с единственным состоянием и функция random. Ввиду указанной неполноты системы типов, некоторые функции имеют меньшее число принимаемых аргументов, например, для make-array недопус- тимо задавать ключи :adjustable, :fill-pointer, :displaced-to и :displaced-index-offset. Неполнота лексического контекста ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Система YLisp использует динамический контекст для tag-меток и имен блоков. Как следствие, в лексическом замыкании сохраняются лишь лекси- ческие связи переменных (и лямбда-выражение). Отсутствуют также лекси- ческие функции и макросы (flet, macrolet), а специальная форма labels позволяет динамически связать с символами новые определения функций. Тело функции не заключается в неявный блок, поименованный символом функции. Так что недопустим возврат значения функции |