Информация о книге

978-5-94074-627-0

Главная  » Научно-техническая литература » Информационные технологии. Компьютеры » Программирование » Java » Практическое использование Common Lisp

Сайбель П., Практическое использование Common Lisp


серия: Функциональное программирование
ДМК-Пресс, 2015 г., 978-5-94074-627-0


Описание книги

В отличие от основной массы литературы про Lisp, эта книга не просто рассказывает о ряде возможностей языка, предоставляя читателю самостоятельно осваивать их на практике. Здесь будут описаны все функции языка, которые понадобятся вам для написания реальных программ. Более трети книги посвящено разработке нетривиальных программ - статистического фильтра для спама, библиотеки для разбора двоичных файлов и сервера для трансляции музыки в формате MP3 через сеть, включающего в себя базу данных (MP3-файлов) и веб-интерфейс. Издание прнедназначено для программистов различной квалификации, как уже использующих Lisp в своей работе, так и только знакомящихся с этим языком.

Скачать, но не бесплатно эту книгу можно в интернет-магазинах

  Литрес - 639 руб.

Читать онлайн


Доступен для чтения фрагмент книги

Ключевые слова

Поделиться ссылкой на книгу



Содержание книги

От коллектива переводчиков
1.Введение: почему Lisp?
1.1. Почему Lisp?
1.2. С чего всё началось
1.3. Для кого эта книга?
2.Намылить, смыть, повторить: знакомство с REPL
2.1. Выбор реализации Lisp
2.2. Введение в Lisp in a Box
2.3. Освободите свой разум: интерактивное
программирование
2.4. Эксперименты в REPL
2.5. "Hello, world" в стиле Lisp
2.6. Сохранение вашей работы
3.Практикум: простая база данных
3.1. CD и записи
3.2. Заполнение CD
3.3. Просмотр содержимого базы данных
3.4. Улучшение взаимодействия с пользователем
3.5. Сохранение и загрузка базы данных
3.6. Выполнение запросов к базе данных
3.7. Обновление существующих записей -
повторное использование where
3.8. Избавление от дублирующего кода и большой
выигрыш
3.9. Об упаковке
4.Синтаксис и семантика
4.1. Зачем столько скобок?
4.2. Вскрытие чёрного ящика
4.3. S-выражения
4.4. S-выражения как формы Lisp
4.5. Вызовы функций
4.6. Специальные операторы
4.8. Истина, ложь и равенство
4.9. Форматирование кода Lisp
5.1. Определение новых функций
5.2. Списки параметров функций
5.3. Необязательные параметры
5.4. Остаточные (rest) параметры
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. Другие способы изменения "мест"
7.Макросы: стандартные управляющие
конструкции
7.1. WHEN и UNLESS
7.3. AND, OR и NOT
7.5. DOLIST и DOTIMES
7.7. Всемогущий LOOP
8.Макросы: создание собственных макросов
8.1. История Мака: обычная такая история
8.2. Время раскрытия макросов против времени
выполнения
8.3. DEFMACRO
8.4. Пример макроса: do-primes
8.5. Макропараметры
8.6. Генерация раскрытия
8.7. Устранение протечек
8.8. Макросы, создающие макросы
8.9. Другой классический макрос, создающий
макросы: ONCE-ONLY
8.10. Не только простые макросы
9.Практикум: каркас для unit-тестирования
9.1. Два первых подхода
9.2. Рефакторинг
9.3. Чиним возвращаемое значение
9.4. Улучшение отчёта
9.5. Выявление абстракций
9.6. Иерархия тестов
9.7. Подведение итогов
10.Числа, знаки и строки
10.2. Запись чисел
10.3. Базовые математические операции
10.4. Сравнение чисел
10.5. Высшая математика
10.6. Знаки (characters)
10.7. Сравнение знаков
10.9. Сравнение строк
11.Коллекции
11.2. Подтипы векторов
11.3. Векторы как последовательности
11.4. Функции для работы с элементами
последовательностей
11.5. Аналогичные функции высшего порядка
11.6. Работа с последовательностью целиком
11.7. Сортировка и слияние
11.8. Работа с частями последовательностей
11.9. Предикаты для последовательностей
11.10. Функции отображения последовательностей
11.11. Хэш-таблицы
11.12. Функции для работы с записями в
хэш-таблицах
12.Они назвали его Lisp неспроста: обработка
списков
12.1. Списков нет
12.2. Функциональное программирование и списки
12.3. "Разрушающие" операции
12.4. Комбинирование утилизации с общими
структурами
12.5. Функции для работы со списками
12.6. Отображение
12.7. Другие структуры
13.Не только списки: другие применения
cons-ячеек
13.2. Множества
13.3. Таблицы поиска: ассоциативные списки и
списки свойств
13.4. DESTRUCTURING-BIND
14.Файлы и файловый ввод/вывод
14.1. Чтение данных из файлов
14.2. Чтение двоичных данных
14.3. Блочное чтение
14.4. Файловый вывод
14.5. Закрытие файлов
14.6. Имена файлов
14.7. Как имена путей представляют имена файлов
14.8. Конструирование имён путей
14.9. Два представления для имён директорий
14.10.Взаимодействие с файловой системой
14.11.Другие операции ввода/вывода
15.Практика: переносимая библиотека файловых
путей
15.1. API
15.2. Переменная *FEATURES* и обработка условий
при считывании
15.3. Получение списка файлов в директории
15.4. Проверка существования файла
15.5. Проход по дереву каталогов
16.Переходим к объектам: обобщённые функции
16.1. Обобщённые функции и классы
16.2. Обобщённые функции и методы
16.3. DEFGENERIC
16.4. DEFMETHOD
16.5. Комбинирование методов
16.6. Стандартный комбинатор методов
16.7. Другие комбинаторы методов
16.8. Мультиметоды
16.9. Продолжение следует...
17.Переходим к объектам: классы
17.1. DEFCLASS
17.2. Спецификаторы слотов
17.3. Инициализация объекта
17.4. Функции доступа
17.5. WITH-SLOTS и WITH-ACCESSORS
17.6. Слоты, выделяемые для классов
17.7. Слоты и наследование
17.8. Множественное наследование
17.9. Правильный объектно-ориентированный
дизайн
18. Несколько рецептов для функции FORMAT
18.1. Функция FORMAT
18.2. Директивы FORMAT
18.3. Основы форматирования
18.4. Директивы для знаков и целых чисел
18.5. Директивы для чисел с плавающей точкой
18.6. Директивы для английского языка
18.7. Условное форматирование
18.8. Итерация
18.9. Тройной прыжок
18.10.И многое другое
19.Обработка исключений изнутри: условия и
перезапуск
19.1. Путь языка Lisp
19.2. Условия
19.3. Обработчики условий
19.4. Перезапуск
19.5. Предоставление множественных
перезапусков
19.6. Другие применения условий
20.Специальные операторы
20.1. Контроль вычисления
20.2. Манипуляции с лексическим окружением
20.3. Локальный поток управления
20.4. Раскрутка стека
20.5. Множественные значения
20.6. EVAL-WHEN
20.7. Другие специальные операторы
21.Программирование по-взрослому: пакеты и
символы
21.1. Как процедура чтения использует пакеты
21.2. Немного про словарь пакетов и символов
21.3. Три стандартных пакета
21.4. Определение собственных пакетов
21.5. Упаковка библиотек для повторного
использования
21.6. Импорт отдельных имён
21.7. Пакетная механика
21.8. Пакетные ловушки
22.LOOP для мастеров с чёрным поясом
22.1. Части LOOP
22.2. Управление итерированием
22.3. Подсчитывающие циклы (Counting Loops)
22.4. Организация циклов по коллекциям и пакетам
22.5. Equals-Then-итерирование
22.6. Локальные переменные
22.7. Деструктурирование переменных
22.8. Накопление значения
22.9. Безусловное выполнение
22.10.Условное выполнение
22.11.Начальные установки и подытоживание
22.12.Критерии завершения
22.13.Сложим все вместе
23. Практика: спам-фильтр
23.1. Сердце спам-фильтра
23.2. Тренируем фильтр
23.3. Пословная статистика
23.4. Комбинирование вероятностей
23.5. Обратная функция chi-квадрат
23.6. Тренируем фильтр
23.7. Тестируем фильтр
23.8. Набор вспомогательных функций
23.9. Анализ результатов
23.10.Что далее?
24. Практика. Разбор двоичных файлов
24.1. Двоичные файлы
24.2. Основы двоичного формата
24.3. Строки в двоичных файлах
24.4. Составные структуры
24.5. Проектирование макросов
24.6. Делаем мечту реальностью
24.7. Чтение двоичных объектов
24.8. Запись двоичных объектов
24.9. Добавление наследования и помеченных
(tagged) структур
24.10.Отслеживание унаследованных слотов
24.11.Помеченные структуры
24.12.Примитивные двоичные типы
24.13.Стек обрабатываемых в данный момент
объектов
25.Практика: разбор ID3
25.1. Структура тега ID3v2
25.2. Определение пакета
25.3. Типы целых
25.4. Типы строк
25.5. Заголовок тега ID3
25.6. Фреймы ID3
25.7. Обнаружение заполнителя тега
25.8. Поддержка нескольких версий ID3
25.9. Базовые классы для фреймов разных версий
25.10. Конкретные классы для фреймов разных
версий
25.11. Какие фреймы на самом деле нужны?
25.12. Фреймы текстовой информации
25.13. Фреймы комментариев
25.14. Извлечение информации из тега ID3
26.Практика. Веб-программирование с помощью
AllegroServe
26.1. 30-секундное введение в
веб-программирование на стороне сервера
26.2. AllegroServe
26.3. Генерация динамического содержимого с
помощью AllegroServe
26.4. Генерация HTML
26.5. Макросы HTML
26.6. Параметры запроса
26.7. Cookies
26.8. Небольшой каркас приложений
26.9. Реализация
27.Практика: База данных для MP3
27.1. База данных
27.2. Определение схемы базы данных
27.3. Вставка значений
27.4. Выполнение запросов к базе данных
27.5. Функции отбора
27.6. Работа с результатами выполнения запросов
27.7. Другие операции с базой данных
28.Практика. Сервер Shoutcast
28.1. Протокол Shoutcast
28.2. Источники песен
28.3. Реализация сервера Shoutcast
29.Практика. Браузер MP3-файлов
29.1. Списки песен
29.2. Списки песен как источники песен
29.3. Изменение списка песен
29.4. Типы параметров запроса
29.5. Шаблонный HTML
29.6. Страница просмотра
29.7. Плей-лист
29.8. Находим плей-лист
29.9. Запускаем приложение
30.Практика: библиотека для генерации HTML -
интерпретатор .
30.1. Проектирование языка специального
назначения
30.2. Язык FOO
30.3. Экранирование знаков
30.4. Вывод отступов
30.5. Интерфейс HTML-процессора
30.6. Реализация форматированного вывода
30.7. Базовое правило вычисления
30.8. Что дальше?
31. Практика: библиотека для генерации HTML -
компилятор
31.1. Компилятор
31.2. Специальные операторы FOO
31.3. Макросы FOO
31.4. Публичный интерфейс разработчика (API)
31.5. Завершение работы
32.Заключение: что дальше?
32.1. Поиск библиотек Lisp
32.2. Взаимодействие с другими языками
программирования
32.3. Сделать, чтобы работало; правильно, быстро
32.4. Поставка приложений
32.5. Что дальше?


Об авторе


Отзывы

Common Lisp на примерах  [ 8 February 2015]
Одна из лучших книг по Lisp с отличным переводом. Новичкам строго рекомендуется!

Последние поступления в рубрике "Java"



Java. Задачи по основам программирования. Более 600 задач, около 150 задач с решениями Java. Задачи по основам программирования. Более 600 задач, около 150 задач с решениями Канель Е.

Предлагаемый задачник адресуется тем, кто решил освоить основы программирования на языке Java — как в рамках коллективных занятий (на уроках, факультативах или кружках), так и при самостоятельном индивидуальном обучении. Задачник содержит более 600......

Head First. Паттерны проектирования. Обновленное юбилейное издание Head First. Паттерны проектирования. Обновленное юбилейное издание Фримен Э.

Больше 12 лет прошло с момента выхода первого издания книги, но она продолжает оставаться актуальной. Основные идеи не изменились, но изменился язык Java, например, появились лямбда-выражения. Поэтому авторы приняли решение обновить легендарную книгу......

Java Concurrency на практике Java Concurrency на практике Гетц Б.

Потоки являются фундаментальной частью платформы Java. Многоядерные процессоры — это обыденная реальность, а эффективное использование параллелизма стало необходимым для создания любого высокопроизводительного приложения. Улучшенная виртуальная машина......

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Сайбель П., Практическое использование Common Lisp в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.