Язык программирования Scheme, 4-е издание

   

Схема
Язык программирования

Четвертое издание

Р. Кент Дибвиг

Иллюстрации Жан-Пьера Эбера

  • Предисловие
  • Глава 1. Введение
    • Раздел 1.1. Синтаксис схемы
    • Раздел 1.2. Соглашения об именах схем
    • Раздел 1.3. Типографские и условные обозначения
  • Глава 2. Начало работы
    • Раздел 2.1. Взаимодействие со схемой
    • Раздел 2.2. Простые выражения
    • Раздел 2.3. Оценка выражений схемы
    • Раздел 2.4. Переменные и выражения Let
    • Раздел 2.5. Лямбда-выражения
    • Раздел 2.6. Определения верхнего уровня
    • Раздел 2. 7. Условные выражения
    • Раздел 2.8. Простая рекурсия
    • Раздел 2.9. Назначение
  • Глава 3. Двигаясь дальше
    • Раздел 3.1. Синтаксическое расширение
    • Раздел 3.2. Подробнее Рекурсия
    • Раздел 3.3. Продолжения
    • Раздел 3.4. Продолжение стиля прохождения
    • Раздел 3.5. Внутренние определения
    • Раздел 3.6. Библиотеки
  • Глава 4. Процедуры и привязки переменных
    • Раздел 4.1. Ссылки на переменные
    • Раздел 4.2. Лямбда
    • Раздел 4.3. Чехол-лямбда
    • Раздел 4.4. Локальная привязка
    • Раздел 4.5. Несколько значений
    • Раздел 4.6. Определения переменных
    • Раздел 4.7. Назначение
  • Глава 5. Операции управления
    • Раздел 5.1.
      Процедура Приложение
    • Раздел 5.2. Секвенирование
    • Раздел 5.3. Условные обозначения
    • Раздел 5.4. Рекурсия и итерация
    • Раздел 5.5. Маппинг и фолдинг
    • Раздел 5.6. Продолжения
    • Раздел 5.7. Отложенная оценка
    • Раздел 5.8. Несколько значений
    • Раздел 5.9. Эвал
  • Глава 6. Операции над объектами
    • Раздел 6.1. Константы и котировка
    • Раздел 6.2. Общая эквивалентность и предикаты типов
    • Раздел 6.3. Списки и пары
    • Раздел 6.4. Номера
    • Раздел 6.5. Фикснумы
    • Раздел 6.6. Флонумс
    • Раздел 6.7. Персонажей
    • Раздел 6.8. Струны
    • Раздел 6.9. Векторы
    • Раздел 6.10. Байтвекторы
    • Раздел 6.11. Символы
    • Раздел 6. 12. Булевы значения
    • Раздел 6.13. Хэш-таблицы
    • Раздел 6.14. Перечисления
  • Глава 7. Ввод и вывод
    • Раздел 7.1. Транскодеры
    • Раздел 7.2. Открытие файлов
    • Раздел 7.3. Стандартные порты
    • Раздел 7.4. Строковые и байтвекторные порты
    • Раздел 7.5. Открытие пользовательских портов
    • Раздел 7.6. Портовые операции
    • Раздел 7.7. Операции ввода
    • Раздел 7.8. Операции вывода
    • Раздел 7.9. Комфортный ввод-вывод
    • Раздел 7.10. Операции с файловой системой
    • Раздел 7.11. Преобразование байт-вектора/строки
  • Глава 8. Синтаксическое расширение
    • Раздел 8.1. Привязки ключевых слов
    • Раздел 8.2. Преобразователи синтаксических правил
    • Раздел 8. 3. Syntax-Case Transformers
    • Раздел 8.4. Примеры
  • Глава 9. Записи
    • Раздел 9.1. Определение записей
    • Раздел 9.2. Процедурный интерфейс
    • Раздел 9.3. Осмотр
  • Глава 10. Библиотеки и программы верхнего уровня
    • Раздел 10.1. Стандартные библиотеки
    • Раздел 10.2. Определение новых библиотек
    • Раздел 10.3. Программы верхнего уровня
    • Раздел 10.4. Примеры
  • Глава 11. Исключения и условия
    • Раздел 11.1. Вызов и обработка исключений
    • Раздел 11.2. Определение типов условий
    • Раздел 11.3. Типы стандартных условий
  • Глава 12. Расширенные примеры
    • Раздел 12.1. Умножение матриц и векторов
    • Раздел 12.2. Сортировка
    • Раздел 12. 3. Конструктор наборов
    • Раздел 12.4. Подсчет частоты слов
    • Раздел 12.5. Схема принтера
    • Раздел 12.6. Форматированный вывод
    • Раздел 12.7. Метациклический интерпретатор схемы
    • Раздел 12.8. Определение абстрактных объектов
    • Раздел 12.9. Быстрое преобразование Фурье
    • Раздел 12.10. Алгоритм объединения
    • Раздел 12.11. Многозадачность с двигателями
  • Список литературы
  • Ответы на избранные упражнения
  • Формальный синтаксис
  • Резюме форм 9 0026
  • Индекс

Р. Кент Дибвиг / Язык программирования Scheme, четвертое издание
Copyright © 2009 The MIT Press. Воспроизведено в электронном виде с разрешения.
Иллюстрации © Жан-Пьер Эбер, 2009 г.
ISBN 978-0-262-51298-5 / LOC QA76.73.S34D93
заказать эту книгу / об этой книге

http://www. scheme.com

Алфавитная таблица примитивов схемы

Первый аргумент меньше или равен второму?
= Два числа равны? (Например, равно? , но работает только для чисел).
> Первый аргумент больше второго?
>= Первый аргумент больше или равен второму?
абс Возвращает абсолютное значение аргумента.
аккумулировать Применить функцию объединения ко всем элементам (глянь сюда).
выровнять Возвращает строку с интервалом заданной ширины (см. здесь).
и (особая форма) Все ли аргументы являются истинными значениями (т. е. не #f )?
появлений Возвращает количество раз, когда первый аргумент встречается во втором.
append Возвращает список, содержащий элементы списков аргументов.
применить Применение функции к аргументам в списке.
assoc Возврат соответствующего ключа записи списка ассоциаций.
раньше? Первый аргумент идет в алфавитном порядке перед вторым?
начало (Специальная форма) Выполнить последовательность инструкции (см. здесь).
bf Сокращение для бутпервый .
бл Аббревиатура бутласт .
логический? Возвращает true, если аргумент равен #t или #f .
butfirst Возвращает все, кроме первой буквы слова или слова предложения.
butlast Возвращает все, кроме последней буквы слова или слова предложения.
c...r Комбинации автомобиля и cdr (см. здесь).
автомобиль Возвращает первый элемент списка.
cdr Возвращает все элементы списка, кроме первого.
потолок Округлите число до ближайшего целого числа.
дочерние элементы Возвращает список дочерних элементов узла дерева.
закрыть все порты Закрыть все открытые порты ввода и вывода.
close-input-port Закрыть входной порт.
close-output-port Закрыть выходной порт.
cond (Особая форма) Выберите один из нескольких вариантов (глянь сюда).
минусы Добавление элемента в начало списка.
cos Возвращает косинус числа (из тригонометрии).
count Возвращает количество букв в слове или количество слов в предложении.
датум Возврат данных узла дерева.
определить (Специальная форма) Создать глобальное имя (для процедуры или другого значения).
дисплей Распечатать аргумент без начала новой строки.
пусто? Является ли аргумент пустым, т. е. пустым словом "" или пустым предложением () ?
eof-объект? Является ли аргумент объектом конца файла?
равно? Два аргумента — одно и то же?
ошибка Распечатайте сообщение об ошибке и вернитесь к приглашению схемы.
четный? Является ли аргумент четным целым числом?
каждые Применение функции к каждому элементу слова или предложение (см. здесь).
expt Возведите первый аргумент во вторую степень.
фильтр Выберите подмножество списка (см. здесь).
first Возвращает первую букву слова или первое слово предложения.
этаж Округлите число в меньшую сторону до ближайшего целого числа.
для каждого Выполнение вычисления для каждого элемента списка.
if (особая форма) Выберите один из двух вариантов (см. здесь).
целое? Является ли аргумент целым числом?
item Возвращает $n$-ю букву слова или $n$-е слово предложения.
сохранить Выберите подмножество слова или предложения (см. здесь).
lambda (Особая форма) Создайте новую процедуру (см. главу \lambchop).
last Возвращает последнюю букву слова или последнее слово предложения.
длина Возвращает количество элементов в списке.
лет (Особая форма) Дайте временные имена значениям (см. здесь).
list Возвращает список, содержащий аргументы.
list->vector Возвращает вектор с теми же элементами, что и список.
list-ref Выбор элемента из списка (считая с нуля).
список? Является ли аргумент списком?
загрузить Считать программный файл в Scheme.
log Возвращает логарифм числа.
make-node Создать новый узел дерева.
make-vector Создать новый вектор заданной длины.
map Применение функции к каждому элементу списка (см. здесь).
max Возвращает наибольший из аргументов.
member Возвращает подмножество списка, начиная с выбранного элемента, или #f .
член? Является ли первый аргумент элементом второй? (глянь сюда).
мин Возвращает наименьший из аргументов.
новая строка Перейти на новую строку печати.
не Вернуть #t , если аргумент равен #f ; вернуть #f в противном случае.
ноль? Является ли аргумент пустым списком?
номер? Является ли аргумент числом?
нечетное? Является ли аргумент нечетным целым числом?
открытый входной файл Открыть файл для чтения, вернуть порт.
open-output-file Открыть файл для записи, вернуть порт.
или (особая форма) Являются ли какие-либо из аргументов истинными значениями (т. е. не #f )?
процедура? Является ли аргумент процедурой?
quote (особая форма) Возвращает аргумент без оценки (глянь сюда).
частное Разделить числа, но округлить до целого числа.
random Возвращает случайное число ≥ 0 и меньше аргумента.
чтение Чтение выражения с клавиатуры (или файла).
read-line Читать строку с клавиатуры (или файла), возвращая предложение.
строка чтения Чтение строки с клавиатуры (или файла), возврат строки.
уменьшить Применить функцию объединения ко всем элементам список (см. здесь).
остаток Возвращает остаток от деления первого числа на второе.
повторяется Вернуть функцию, описанную f ( f (⋅⋅⋅( f ( x )))) (см. здесь).
округлить Округлить число до ближайшего целого числа.
se Сокращение для предложения .
предложение Соедините аргументы в одно большое предложение.
предложение? Является ли аргумент предложением?
show Распечатать аргумент и начать новую строку.
show-line Показать предложение-аргумент без круглых скобок.
sin Возвращает синус числа (из тригонометрии).
sqrt Возвращает квадратный корень из числа.
квадрат Не примитив! (определить (квадрат x) (* x x))
след Отчет обо всех будущих вызовах процедуры.
untrace Отменить эффект trace .
вектор Создайте вектор с аргументами в качестве элементов.
vector->list Возвращает список с теми же элементами, что и вектор.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *