Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Julia в качестве второго языка

Общецелевое программирование с привкусом науки о данных
Покупка
Новинка
Артикул: 855990.01.99
Доступ онлайн
1 899 ₽
В корзину
В языке Julia идеально сочетаются простота, гибкость и производительность. Книга позволяет освоить этот язык с нуля, демонстрируя все его аспекты — от базового синтаксиса до продвинутых функциональных возможностей — на примере ряда проектов. Описываются применение базовых типов и структур данных при симуляции пуска ракеты, использование словарей для интерпретации римских цифр, множественная диспетчеризация Julia в симулированном сражении между рыцарями и лучниками. Попутно сравниваются объектно ориентированный и функциональный стили программирования (язык Julia поддерживает оба). Издание подойдет читателям, уже знакомым с каким-либо языком программирования, например Python, JavaScript или C#.
Энгхейм, Э. Julia в качестве второго языка : общецелевое программирование с привкусом науки о данных : практическое руководство / Э. Энгхейм ; пер. с англ. А. В. Логунова. – Москва : ДМК Пресс, 2023. - 448 с. – ISBN 978-5-93700-214-3. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2204242 (дата обращения: 03.04.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Эрик Энгхейм
Julia в качестве  
второго языка


Julia as a Second  
Language
GENERAL PURPOSE PROGRAMMING  
WITH A TASTE OF DATA SCIENCE
ERIK ENGHEIM


Julia в качестве  
второго языка
ОБЩЕЦЕЛЕВОЕ ПРОГРАММИРОВАНИЕ  
С ПРИВКУСОМ НАУКИ О ДАННЫХ
ЭРИК ЭНГХЕЙМ
Москва, 2023


УДК	 004.04
ББК	 32.372
Э62
Энгхейм Э.
Э62	
Julia в качестве второго языка / пер. с англ. А. В. Логунова. – М.: ДМК Пресс, 
2023. – 446 с.: ил. 
ISBN 978-5-93700-214-3
В языке Julia идеально сочетаются простота, гибкость и производительность. Книга 
позволяет освоить этот язык с нуля, демонстрируя все его аспекты – от базового синтаксиса до продвинутых функциональных возможностей – на примере ряда проектов. 
Описываются применение базовых типов и структур данных при симуляции пуска 
ракеты, использование словарей для интерпретации римских цифр, множественная 
диспетчеризация Julia в симулированном сражении между рыцарями и лучниками. 
Попутно сравниваются объектно ориентированный и функциональный стили программирования (язык Julia поддерживает оба).
Издание подойдет читателям, уже знакомым с каким-либо языком программирования, например Python, JavaScript или C#.
УДК  004.04
ББК  32.372
Copyright © DMK Press 2023. Authorized translation of the English edition © 2023 Manning 
Publications. This translation is published and sold by permission of Manning Publications, the owner 
of all rights to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой 
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
ISBN 978-1-6172-9971-1 (англ.)	
©  Manning Publications, 2023
ISBN 978-5-93700-214-3 (рус.)	
©  Перевод, оформление, издание, ДМК Пресс, 2023


Посвящается моим бабушке и дедушке,  
которые приобрели мне мой первый компьютер – Amiga 1000


Оглавление
Часть I	
ОСНОВЫ............................................................................................24
	1	   Почему именно Julia?...............................................................................25
	2	   Julia в качестве калькулятора..................................................................42
	3	   Поток управления....................................................................................63
	4	   Julia в качестве электронной таблицы....................................................92
	5	   Работа с текстом.....................................................................................122
	6	   Хранение данных в словарях................................................................144
Часть II	
ТИПЫ................................................................................................161
	7	   Понимание типов...................................................................................162
	8	   Сборка ракеты........................................................................................185
	9	   Конвертация и приведение типов........................................................208
	10	   Представление неизвестных значений................................................227
Часть III	 КОЛЛЕКЦИИ...................................................................................239
	11	   Работа со строковыми литералами.......................................................240
	12	   Понимание коллекций Julia..................................................................273
	13	   Работа с множествами...........................................................................302
	14	   Работа с векторами и матрицами.........................................................322
Часть IV	 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО  
	
ОБЕСПЕЧЕНИЯ..............................................................................336
	15	   Функциональное программирование на языке Julia..........................337
	16	   Организация и модуляризация исходного кода..................................363
Часть V	
УГЛУБЛЕННОЕ ИЗУЧЕНИЕ........................................................387
	17	   Ввод и вывод...........................................................................................388
	18	   Определение параметрических типов.................................................401


Содержание
Оглавление.......................................................................................................... 6
Предисловие..................................................................................................... 15
Признательности............................................................................................. 16
Об этой книге................................................................................................... 17
Об авторе........................................................................................................... 22
Об иллюстрации на обложке........................................................................ 23
Часть I	
ОСНОВЫ......................................................................................... 24
1	
Почему именно Julia?........................................................................ 25
1.1	
Что из себя представляет язык Julia?.............................................. 26
1.1.1	
Плюсы и минусы статически и динамически  
	
типизированных языков............................................................ 27
1.2	
Julia сочетает в себе элегантность, продуктивность  
	
и производительность........................................................................ 28
1.3	
Для чего был создан язык Julia......................................................... 29
1.3.1	
Ученые нуждаются в интерактивном  
	
программировании, которое предлагается динамически  
	
типизированными языками...................................................... 30
1.3.2	
Разработчикам в других областях тоже нужна  
	
интерактивность, предлагаемая динамически  
	
типизированным языком.......................................................... 32
1.4	
Более высокая производительность языка Julia решает  
	
проблему двух языков......................................................................... 33
1.5	
Julia для всех.......................................................................................... 34
1.6	
Что можно разрабатывать на языке Julia?..................................... 36
1.6.1	
Julia в науке................................................................................. 36
1.6.2	
Использование Julia в ненаучных целях.................................... 37
1.7	
Где язык Julia менее идеален............................................................ 37
1.8	
Что вы узнаете из этой книги........................................................... 39
	
Резюме.................................................................................................... 40
2	
Julia в качестве калькулятора................................................. 42
2.1	
Командная строка Julia....................................................................... 43
2.2	
Использование констант и переменных........................................ 44
2.2.1	
Присваивание и привязывание значений к переменным........ 48


Содержание
2.2.2	
Использование переменной ans................................................. 49
2.2.3	
Что такое литеральный коэффициент?................................ 50
2.3	
Разные типы чисел и их длина в битах........................................... 51
2.3.1	
Написание чисел с использованием разных числовых  
	
форматов.................................................................................... 52
2.4	
Числа с плавающей точкой................................................................ 54
2.4.1	
Выполнение операций на целых числах и числах  
	
с плавающей точкой.................................................................. 55
2.5	
Определение функций........................................................................ 56
2.5.1	
Хранение определений функций в файле.................................. 57
2.5.2	
Работа с функциями в интерактивной среде REPL............... 58
2.5.3	
Функции повсюду........................................................................ 59
2.5.4	
Функции для работы с числами................................................ 60
2.6	
Как использовать числа на практике.............................................. 62
	
Резюме.................................................................................................... 62
3	
Поток управления............................................................................... 63
3.1	
Навигация и тригонометрия............................................................. 64
3.2	
Булевы выражения............................................................................... 66
3.2.1	
Составные инструкции............................................................. 68
3.3	
Циклы...................................................................................................... 69
3.3.1	
Блок-схема................................................................................... 71
3.3.2	
Составление математической таблицы синусной  
	
функции ...................................................................................... 72
3.3.3	
Объекты-диапазоны.................................................................. 74
3.3.4	
Циклы for..................................................................................... 75
3.4	
Многострочные функции................................................................... 76
3.4.1	
Реализация тригонометрической синусной функции............. 77
3.5	
Реализация факториала..................................................................... 79
3.6	
Факториал с использованием рекурсии......................................... 80
3.7	
Инструкции if........................................................................................ 80
3.7.1	
Инструкции if-else...................................................................... 81
3.7.2	
Подчиненный компонент elseif................................................. 82
3.8	
Исключения для обработки ошибок................................................ 83
3.9	
Поток управления в отличие от потока данных........................... 85
3.10	 Подсчет кроликов................................................................................. 86
3.10.1	 Базовый случай........................................................................... 89
3.10.2	 Итерации по сравнению с рекурсией........................................ 89
3.10.3	 Возвращать или не возвращать............................................... 90
Резюме............................................................................................................... 91
4	
Julia в качестве электронной таблицы............................ 92
4.1	
Анализ продажи пиццы...................................................................... 93
4.2	
Различные типы массивов................................................................. 94
4.3	
Выполнение операций на массивах................................................ 96
4.4	
Работа с модулем Statistics................................................................ 98


Содержание
4.5	
Доступ к элементам............................................................................100
4.6	
Создание массивов.............................................................................103
4.7	
Отображение значений в массиве..................................................105
4.8	
Знакомство с буквенными символами и строковыми  
	
литералами...........................................................................................109
4.9	
Хранение данных о пиццах в кортежах.........................................112
4.10	 Фильтрация пицц на основе предикатов......................................116
4.10.1	 Комбинирование функций более высокого порядка................117
4.11	 Отображение и редукция массива..................................................118
 4.11.1	 Таблица синусов с использованием map и reduce....................119
4.12	 Подсчет совпадений с использованием булевых  
	
массивов................................................................................................120
	
Резюме...................................................................................................121
5	
Работа с текстом.............................................................................122
5.1	
Создание хорошо отформатированной таблицы  
	
продажи пицц......................................................................................123
5.1.1	
Функции print, println и printstyled...........................................124
5.1.2	
Печать нескольких элементов.................................................128
5.1.3	
Печать нескольких пицц...........................................................129
5.1.4	
Выравнивание с помощью функций lpad и rpad......................130
5.1.5	
Добавление линий......................................................................131
5.2	
Распечатка тригонометрической таблицы...................................132
5.3	
Чтение и запись продажи пицц в CSV-файлы.............................134
5.3.1	
Запись продаж пицц в файл......................................................136
5.3.2	
Чтение продаж пицц из файла.................................................137
5.4	
Взаимодействие с пользователем...................................................140
	
Резюме...................................................................................................142
6	
Хранение данных в словарях......................................................144
6.1	
Синтаксический разбор римских цифр.........................................145
6.2	
Использование типа Dict...................................................................147
6.3	
Прокручивание буквенных символов в цикле.............................149
6.4	
Перечисление значений и индексов..............................................150
6.5	
Объяснение процесса конвертации...............................................151
6.6	
Использование словарей...................................................................152
6.6.1	
Создание словарей.....................................................................152
6.6.2	
Доступ к элементам.................................................................154
6.7	
Зачем использовать словарь?..........................................................155
6.8	
Использование именованных кортежей в качестве  
	
словарей................................................................................................158
 6.8.1	 Когда применять именованный кортеж?...............................159
6.8.2	
Связывание всего воедино.........................................................160
Резюме..............................................................................................................160


Содержание
Часть II	
ТИПЫ................................................................................................161
7	
Понимание типов...............................................................................162
7.1	
Создание составных типов из примитивных..............................163
7.2	
Обследование иерархий типов........................................................166
7.3	
Создание симулятора сражений.....................................................170
7.3.1	
Определение типов воинов.......................................................170
7.3.2	
Добавление воинам поведения.................................................172
7.3.3	
Использование множественной диспетчеризации  
	
для вызова методов...................................................................175
7.4	
Как Julia выбирает метод, который следует вызвать.................179
7.4.1	
Сравнение множественной диспетчеризации Julia  
	
с объектно ориентированными языками...............................181
7.4.2	
Чем множественная диспетчеризация отличается  
	
от перегрузки функций?...........................................................183
	
Резюме...................................................................................................184
8	
Сборка ракеты......................................................................................185
8.1	
Сборка простой ракеты в исходном коде......................................186
8.2	
Поддержание инвариантов в исходном коде............................... 191
8.3	
Создание объектов с помощью функций-конструкторов.........192
8.4	
Различия между внешними и внутренними  
	
конструкторами...................................................................................194
8.5	
Моделирование ракетных двигателей и полезной  
	
нагрузки................................................................................................195
8.6	
Сборка простой ракеты.....................................................................198
8.7	
Создание ракеты с несколькими ступенями  
	
и двигателями......................................................................................199
8.8	
Запуск ракеты в космос.....................................................................204
	
Резюме...................................................................................................207
9	
Конвертация и приведение типов........................................208
9.1	
Обследование системы приведения чисел...................................209
9.2	
Понимание конвертации чисел.......................................................212
9.3	
Определение конкретно-прикладных единиц измерения  
	
углов.......................................................................................................215
9.3.1	
Определение конструкторов углов.........................................217
9.3.2	
Определение арифметических операций на углах.................218
9.3.3	
Определение функций доступа для извлечения градусов,  
	
минут и секунд..........................................................................219
9.3.4	
Отображение углов DMS на экране........................................220
9.3.5	
Определение конвертаций типов............................................221
9.3.6	
Создание красивых литералов углов.......................................222
9.3.7	
Приведения типов.....................................................................223
	
Резюме...................................................................................................225


Похожие

Доступ онлайн
1 899 ₽
В корзину