Хорстманн К.С., SCALA для нетерпеливых
серия: Функциональное программирование
ДМК-Пресс, 2015 г., 978-5-94074-920-2, 978-5-97060-303-1
Описание книги
Поделиться ссылкой на книгу
Содержание книги
Предисловие
Вступление
Об авторе
Глава 1. Основы
1.1. Интерпретатор Scala
1.2. Объявление значений и переменных
1.3. Часто используемые типы
1.4. Арифметика и перегрузка операторов
1.5. Вызов функций и методов
1.6. Метод apply
1.7. Scaladoc
Упражнения
Глава 2. Управляющие структуры и функции
2.1. Условные выражения
2.2. Завершение инструкций
2.3. Блочные выражения и присвоение
2.4. Ввод и вывод
2.5. Циклы
2.6. Расширенные циклы for и for-генераторы
2.7. Функции
2.8. Аргументы по умолчанию и именованные
аргументы L1
2.9. Переменное количество аргументов L1
2.10. Процедуры
2.11. Ленивые значения L1
2.12. Исключения
Упражнения
Глава 3. Работа с массивами
3.1. Массивы фиксированной длины
3.2. Массивы переменной длины: буферы
3.3. Обход массивов и буферов
3.4. Преобразование массивов
3.5. Типичные алгоритмы
3.6. Расшифровываем Scaladoc
3.7. Многомерные массивы
3.8. Взаимодействие с Java
Упражнения
Глава 4. Ассоциативные массивы и кортежи
4.1. Конструирование отображений
4.2. Доступ к значениям в ассоциативных массивах
4.3. Изменение значений в ассоциативных массивах
4.4. Обход элементов ассоциативных массивов
4.5. Сортированные ассоциативные массивы
4.6. Взаимодействие с Java
4.7. Кортежи
4.8. Функция zip
Упражнения
Глава 5. Классы
5.1. Простые классы и методы без параметров
5.2. Свойства с методами доступа
5.3. Свойства только с методами чтения
5.4. Приватные поля объектов
5.5. Свойства компонентов L1
5.6. Дополнительные конструкторы
5.7. Главный конструктор
5.8. Вложенные классы L1
Упражнения
Глава 6. Объекты
6.1. Объекты-одиночки
6.2. Объекты-компаньоны
6.3. Объекты, расширяющие классы или трейты
6.4. Метод apply
6.5. Объект, представляющий приложение
6.6. Перечисления
Упражнения
Глава 7. Пакеты и импортирование
7.1. Пакеты
7.2. Правила видимости
7.3. Объявления цепочек пакетов
7.4. Объявления в начале файла
7.5. Объекты пакетов
7.6. Видимость внутри пакетов
7.7. Импортирование
7.8. Импортирование возможно в любом месте
7.9. Переименование и сокрытие членов
7.10. Неявный импорт
Упражнения
Глава 8. Наследование
8.1. Наследование классов
8.2. Переопределение методов
8.3. Проверка и приведение типов
8.4. Защищенные поля и методы
8.5. Создание суперклассов
8.6. Переопределение полей
8.7. Анонимные подклассы
8.8. Абстрактные классы
8.9. Абстрактные поля
8.10. Порядок создания и опережающие
определения L3
8.11. Иерархия наследования в Scala
8.12. Равенство объектов L1
Упражнения
Глава 9. Файлы и регулярные выражения
9.1. Чтение строк
9.2. Чтение символов
9.3. Чтение лексем и чисел
9.4. Чтение из URL и других источников
9.5. Чтение двоичных файлов
9.6. Запись в текстовые файлы
9.7. Обход каталогов
9.8. Сериализация
9.9. Управление процессами A2
9.10. Регулярные выражения
9.11. Группы в регулярных выражениях
Упражнения
Глава 10. Трейты
10.1. Почему не поддерживается множественное
наследование?
10.2. Трейты как интерфейсы
10.3. Трейты с конкретными реализациями
10.4. Объекты с трейтами
10.5. Многоуровневые трейты
10.6. Переопределение абстрактных методов в
трейтах
10.7. Трейты с богатыми интерфейсами
10.8. Конкретные поля в трейтах
10.9. Абстрактные поля в трейтах
10.10. Порядок конструирования трейтов
10.11. Инициализация полей трейтов
10.12. Трейты, наследующие классы
10.13. Собственные типы L2
10.14. За кулисами
Упражнения
Глава 11. Операторы
11.1. Идентификаторы
11.2. Инфиксные операторы
11.3. Унарные операторы
11.4. Операторы присвоения
11.5. Приоритет
11.6. Ассоциативность
11.7. Методы apply и update
11.8. Экстракторы L2
11.9. Экстракторы с одним аргументом или без
аргументов L2
11.10. Метод unapplySeq L2
Упражнения
Глава 12. Функции высшего порядка
12.1. Функции как значения
12.2. Анонимные функции
12.3. Функции с функциональными параметрами
12.4. Вывод типов
12.5. Полезные функции высшего порядка
12.6. Замыкания
12.7. Преобразование функций в SAM
12.8. Карринг
12.9. Абстракция управляющих конструкций
12.10. Выражение return
Упражнения
Глава 13. Коллекции
13.1. Основные трейты коллекций
13.2. Изменяемые и неизменяемые коллекции
13.3. Последовательности
13.4. Списки
13.5. Изменяемые списки
13.6. Множества
13.7. Операторы добавления и удаления элементов
13.8. Общие методы
13.9. Функции map и flatMap
13.10. Функции reduce, fold и scan A3
13.11. Функция zip
13.12. Итераторы
13.13. Потоки A3
13.14. Ленивые представления
13.15. Взаимодействие с коллекциями Java
13.16. Потокобезопасные коллекции
13.17. Параллельные коллекции
Упражнения
Глава 14. Сопоставление с образцом и case-классы
14.1. Лучше, чем switch
14.2. Ограничители
14.3. Переменные в образцах
14.4. Сопоставление c типами
14.5. Сопоставление с массивами, списками и
кортежами
14.6. Экстракторы
14.7. Образцы в объявлениях переменных
14.8. Образцы в выражениях for
14.9. Case-классы
14.10. Метод copy и именованные параметры
14.11. Инфиксная нотация в предложениях case
14.12. Сопоставление с вложенными структурами
14.13. Так ли необходимы case-классы?
14.14. Запечатанные классы
14.15. Имитация перечислений
14.16. Тип Option
14.17. Частично определенные функции L2
Упражнения
Глава 15. Аннотации
15.1. Что такое аннотации?
15.2. Что можно аннотировать?
15.3. Аргументы аннотаций
15.4. Реализация аннотаций
15.5. Аннотации для элементов Java
15.5.1. Модификаторы Java
15.5.2. Интерфейсы-маркеры
15.5.3. Контролируемые исключения
15.5.4. Списки аргументов переменной длины
15.5.5. Компоненты JavaBeans
15.6. Аннотации для оптимизации
15.6.1. Хвостовая рекурсия
15.6.2. Создание таблиц переходов и встраивание
15.6.3. Игнорируемые методы
15.6.4. Специализация простых типов
15.7. Аннотации ошибок и предупреждений
Упражнения
Глава 16. Обработка XML
16.1. Литералы XML
16.2. Узлы XML
16.3. Атрибуты элементов
16.4. Встроенные выражения
16.5. Выражения в атрибутах
16.6. Необычные типы узлов
16.7. XPath-подобные выражения
16.8. Сопоставление с образцом
16.9. Модификация элементов и атрибутов
16.10. Трансформация XML
16.11. Загрузка и сохранение
16.12. Пространства имен
Упражнения
Глава 17. Параметризованные типы
17.1. Обобщенные классы
17.2. Обобщенные функции
17.3. Границы изменения типов
17.4. Границы представления
17.5. Границы контекста
17.6. Границы контекста Manifest
17.7. Множественные границы
17.8. Ограничение типов L3
17.9. Вариантность
17.10. Ко- и контравариантные позиции
17.11. Объекты не могут быть обобщенными
17.12. Подстановочный символ
Упражнения
Глава 18. Дополнительные типы
18.1. Типы-одиночки
18.2. Проекции типов
18.3. Цепочки
18.4. Псевдонимы типов
18.5. Структурные типы
18.6. Составные типы
18.7. Инфиксные типы
18.8. Экзистенциальные типы
18.9. Система типов языка Scala
18.10. Собственные типы
18.11. Внедрение зависимостей
18.12. Абстрактные типы L3
18.13. Родовой полиморфизм L3
18.14. Типы высшего порядка L3
Упражнения
Глава 19. Парсинг
19.1. Грамматики
19.2. Комбинирование операций парсера
19.3. Преобразование результатов парсинга
19.4. Отбрасывание лексем
19.5. Создание деревьев синтаксического анализа
19.6. Уход от левой рекурсии
19.7. Дополнительные комбинаторы
19.8. Уход от возвратов
19.9. Packrat-парсеры
19.10. Что такое парсеры?
19.11. Парсеры на основе регулярных выражений
19.12. Парсеры на основе лексем
19.13. Обработка ошибок
Упражнения
Глава 20. Акторы
20.1. Создание и запуск акторов
20.2. Отправка сообщений
20.3. Прием сообщений
20.4. Отправка сообщений другим акторам
20.5. Каналы
20.6. Синхронные сообщения и Futures
20.7. Совместное использование потоков
выполнения
20.8. Жизненный цикл акторов
20.9. Связывание акторов
20.10. Проектирование приложений с применением
акторов
Упражнения
Глава 21. Неявные параметры и преобразования
21.1. Неявные преобразования
21.2. Использование неявных преобразований для
расширения существующих библиотек
21.3. Импорт неявных преобразований
21.4. Правила неявных преобразований
21.5. Неявные параметры
21.6. Неявные преобразования с неявными
параметрами
21.7. Границы контекста
21.8. Неявный параметр подтверждения
21.9. Аннотация @implicitNotFound
21.10. Тайна CanBuildFrom
Упражнения
Глава 22. Ограниченные продолжения
22.1. Сохранение и вызов продолжений
22.2. Вычисления с "дырками"
22.3. Управление выполнением в блоках reset и
shift
22.4. Значение выражения reset
22.5. Типы выражений reset и shift
22.6. CPS-аннотации
22.7. Преобразование рекурсии в итерации
22.8. Устранение инверсии управления
22.9. CPS-трансформация
22.10. Трансформирование вложенных контекстов
управления
Упражнения
Предметный указатель
Об авторе
Кей Хорстманн — основной автор книги "Java 2. Библиотека профессионала", тома 1 и 2, 8-е издание (ИД "Вильямс", 2008). Кей занимает должность профессора факультета вычислительной техники в Университете Сан-Хосе, носит титул Java Champion и часто выступает на конференциях в компьютерной отрасли.
Отзывы
При этом, честно говоря, такое чувство, что издание распечатывали на домашнем принтере со старым картриджем. Половина листов с дефектами печати: чёрточки, вертикальные линии через всю страницу. На мой взгляд, сейчас, когда всё можно прочитать в электронном виде, изданная книга должна быть источником не только информации, но эстетического удовольствия как хорошо сделанная вещь. Здесь об этом говорить, к сожалению, не приходится.
А вот к издательству претензии есть.
1. Беда большинства русских переводов. Многие повсеместно используемые термины на английском не стоило переводить, либо нужно как то их адаптировать на русский. А так перевод местами напоминает машинный и только сбивает с толку.
2. Плохое качество печати: много небольших артефактов, почти на трети страниц есть вертикальная полоса, проходящая по центру через всю страницу. Возможно мне попался брак. Склеены страницы нормально, пока (неделю читаю) не развалилась. Страницы достаточно плотные. Твердый переплет не помешал бы, но и так сойдет, книга то небольшая
Автору 5, издательству 3, итого твердая 4. Рекомендую всем, ко хочет познакомиться с языком, а сил читать книги на английском пока нет.
На русском языке я больше книг по Scala не видел. И тот факт что подобная книга охватывает практически все возможности Scala - очень радует.
Честно говоря радует что подобные книги печатаются на русском языке.
По "внутренностям" - пока дочитал не до конца, но и того что успел прочитать хватило что бы понять что же такое Scala и в каких случая ее стоит применять. Очень порадовали примеры и задания из книги - видно что это не стандартные "кролики с зайчиками" которые являются животными, а примеры которые можно применять в реальной практике.
P.S. 4 звезды из 5 по причине того что как я считаю для книг с подобным содержанием нужна твердая обложка. Так что минус 1 звезда не за содержание, а за оформление.
Качество издания традиционно для ДМК Пресс. По содержанию неплохо, всё пропечатано, опечаток вроде нет, но переплёт не нравится: бумага жёсткая, плотно подклеена, в результате читать не удобно, в раскрытом виде книгу не положишь. За что и ставлю четвёрку.
PS. Позабавило написание фамилии автора. В трёх местах по разному: на обложке - Хорстман, в издательских данных - Хостманн, а во вступлении - Хорстманн. Последний вариант кажется самый правильный.
Книга составлена в виде учебника с заданиями и вопросами в конце глав.
Сильный автор, который был соавтором книг "Тонкости программирования на Java"
Последние поступления в рубрике "Тематика определяется"
Математика. Подготовка к ЕГЭ. Задачи с параметрами.10-11 классы
В предлагаемом пособии представлен обширный материал, посвященный двум заключительным и сложным темам ЕГЭ профильного уровня: задачам с параметрами и числам и их свойствам. На многочисленных примерах с подробными решениями и обоснованиями (как и требуется на экзамене) показаны различные методы и решения задач.... | |
План счетов бухгалтерского учета с последними изменениями
Читателю предлагается самая последняя редакция Плана счетов бухгалтерского учета финансово-хозяйственной деятельности организаций и инструкции по его применению с учетом последних приказов Минфина РФ. План счетов - это важнейший инструмент бухгалтерского учета, настольная книга для каждого практического бухгалтера.... | |
На ферме. Книжка с наклейками
Игры с наклейками - занятие не только интересное, но и полезное. С этой книгой малыш познакомится с различными видами транспорта, потренируется решать простые логические задачки и находить соответствия.... |
Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Хорстманн К.С., SCALA для нетерпеливых в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.