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

978-5-94074-920-2, 978-5-97060-303-1

Главная  » Тематика определяется » SCALA для нетерпеливых

Хорстманн К.С., SCALA для нетерпеливых


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


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

Книга в сжатой форме описывает, что можно делать на языке Scala, и как это делать. Кей Хорстманн (Cay Horstmann), основной автор всемирного бестселлера \"Core Java™\", дает быстрое и практическое введение в язык программирования, основанное на примерах программного кода. Он знакомит читателя с концепциями языка Scala и приемами программирования небольшими \"порциями\", что позволяет быстро осваивать их и применять на практике. Практические примеры помогут вам пройти все стадии компетентности, от новичка до эксперта. Издание предназначено для программистов разной квалификации, как знакомых с языком Scala, так и впервые изучающих языки функционального программирования.

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



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

От издательства
Предисловие
Вступление
Об авторе
Глава 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 July 2015]
Книгу рекомендует сам создатель языка, Мартин Одерский, в случае, если его собственная - Programming in Scala - кажется слишком длинной. На мой взгляд, обе стоит читать параллельно: здесь сжатый конспект и упражнения, там более подробные объяснения. Сейчас, увы, книга Одерского доступна только в электронной версии на английском, так что "Scala для нетерпеливых", похоже, вообще единственное об этом языке, что можно купить в магазине.

При этом, честно говоря, такое чувство, что издание распечатывали на домашнем принтере со старым картриджем. Половина листов с дефектами печати: чёрточки, вертикальные линии через всю страницу. На мой взгляд, сейчас, когда всё можно прочитать в электронном виде, изданная книга должна быть источником не только информации, но эстетического удовольствия как хорошо сделанная вещь. Здесь об этом говорить, к сожалению, не приходится.
Рекомендую при знакомстве со Scala на русском  [28 June 2015]
Про сам текст Хорстмана добавить к существующим отзывам нечего, книга качественная, своим названию и аннотации полностью соответствует.

А вот к издательству претензии есть.
1. Беда большинства русских переводов. Многие повсеместно используемые термины на английском не стоило переводить, либо нужно как то их адаптировать на русский. А так перевод местами напоминает машинный и только сбивает с толку.
2. Плохое качество печати: много небольших артефактов, почти на трети страниц есть вертикальная полоса, проходящая по центру через всю страницу. Возможно мне попался брак. Склеены страницы нормально, пока (неделю читаю) не развалилась. Страницы достаточно плотные. Твердый переплет не помешал бы, но и так сойдет, книга то небольшая

Автору 5, издательству 3, итого твердая 4. Рекомендую всем, ко хочет познакомиться с языком, а сил читать книги на английском пока нет.
Книга стоит своих денег  [31 May 2015]
Книга стоит своих денег.
На русском языке я больше книг по Scala не видел. И тот факт что подобная книга охватывает практически все возможности Scala - очень радует.
Честно говоря радует что подобные книги печатаются на русском языке.
По "внутренностям" - пока дочитал не до конца, но и того что успел прочитать хватило что бы понять что же такое Scala и в каких случая ее стоит применять. Очень порадовали примеры и задания из книги - видно что это не стандартные "кролики с зайчиками" которые являются животными, а примеры которые можно применять в реальной практике.
P.S. 4 звезды из 5 по причине того что как я считаю для книг с подобным содержанием нужна твердая обложка. Так что минус 1 звезда не за содержание, а за оформление.
Неплохое описание языка  [ 5 April 2014]
По содержанию могу заметить, что автор часто сравнивает Scala с Java, что логично, но не всем полезно, так как не все кто взялись за Scala до этого программировали на Java. Были бы более уместны сравнения с другими модными языками: Ruby, Haskell, Python. В плюс книге и автору наличие упражнений. Уже после прочтения первых трёх глав (всего 22) я смог начать писать нетривиальные программы со списками и массивами, используя некоторые фичи языка и парадигмы. Язык осваивается легко, правда у меня уже есть опыт других функциональных языков (Haskell, Scheme, ML).

Качество издания традиционно для ДМК Пресс. По содержанию неплохо, всё пропечатано, опечаток вроде нет, но переплёт не нравится: бумага жёсткая, плотно подклеена, в результате читать не удобно, в раскрытом виде книгу не положишь. За что и ставлю четвёрку.

PS. Позабавило написание фамилии автора. В трёх местах по разному: на обложке - Хорстман, в издательских данных - Хостманн, а во вступлении - Хорстманн. Последний вариант кажется самый правильный.
Отличная книга  [21 April 2013]
Отличная книга. Издание ДМК Пресс не перестает радовать нас выходом новых книг для разработчиков. Книга отлично подойдет как введение в Scala или как краткий справочник. Жаль только, что тираж книги очень маленький и не все желающие успеют приобрести данное издание.
Отзыв  [19 April 2013]
Отличное пособие для начинающего Scala программера.
Книга составлена в виде учебника с заданиями и вопросами в конце глав.
Сильный автор, который был соавтором книг "Тонкости программирования на Java"

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



Коллекционное холодное оружие Западной Европы XVII - начала XIX вв. 

Издание посвящено уникальным образцам охотничьего и боевого холодного оружия из частных собраний европейских коллекционеров. Каждый экземпляр сопровождается экспертным описанием, оценкой степени его сохранности и подробными авторскими иллюстрациями....

Терапевтическая катастрофа. Мастера психотерапии рассказывают о самых провальных случаях 

Ни один психотерапевт не застрахован от ошибок в работе с клиентами, но мало кто готов открыто обсуждать собственные неудачи. Авторы книги решили наглядно показать, что просчеты и промахи - это не только неотъемлемая сторона профессии, но и повод вынести для себя ценные уроки....

Любовь к человеку с пограничным расстройством личности 

Люди с пограничным расстройством личности (ПРЛ) могут быть очень заботливыми, нежными, умными и веселыми - и при этом своим поведением отталкивать даже самых близких людей. Если у вас непростые отношения с человеком, который страдает от ПРЛ, то эта книга - для вас....

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