版元ドットコム

探せる、使える、本の情報

文芸 新書 社会一般 資格・試験 ビジネス スポーツ・健康 趣味・実用 ゲーム 芸能・タレント テレビ・映画化 芸術 哲学・宗教 歴史・地理 社会科学 教育 自然科学 医学 工業・工学 コンピュータ 語学・辞事典 学参 児童図書 ヤングアダルト 全集 文庫 コミック文庫 コミックス(欠番扱) コミックス(雑誌扱) コミックス(書籍) コミックス(廉価版) ムック 雑誌 増刊 別冊
実践Julia入門 後藤 俊介(著/文) - 技術評論社
..

書店員向け情報 HELP

書店注文情報

受注センター:
注文電話番号:
注文FAX番号:
販売促進部:
注文電話番号:
注文FAX番号:
注文サイト:

実践Julia入門 (ジッセンジュリアニュウモン)

コンピュータ
このエントリーをはてなブックマークに追加
発行:技術評論社
B5変型判
656ページ
定価 3,600円+税
ISBN
978-4-297-13350-4   COPY
ISBN 13
9784297133504   COPY
ISBN 10h
4-297-13350-4   COPY
ISBN 10
4297133504   COPY
出版者記号
297   COPY
Cコード
C3055  
3:専門 0:単行本 55:電子通信
出版社在庫情報
不明
書店発売日
登録日
2023年1月16日
最終更新日
2023年2月20日
このエントリーをはてなブックマークに追加

紹介

2018年に正式安定版ver.1.0がリリースされて以降、数値計算分野などで注目を集めている言語・Juliaの本格的な入門書です。本書では言語仕様や基本機能の解説に重きを置きながら、実践的な実用例まで解説します。
本書は「入門編」「基本編」「実践編」の3部からなります。「入門編」では、開発環境のセットアップからはじめ、基本的な文法を解説します。「基本編」ではより詳細な解説に踏み入り、Julia特有の仕様や概念、固有の機能などを理解してもらいます。そして「実践編」では数値計算、データ解析、機械学習を取り上げ、より具体的・実用的な実践に発展します。
はじめてJuliaを使うという人から、今まで以上に深く知りたいという人まで、Juliaの魅力が詰まった一冊です。

目次

【入門編】
#第1章 Juliaのインストールと開発

##1-1. Juliaの特徴
###1-1-1. Juliaは高速!
###1-1-2. Juliaは動的!
###1-1-3. Juliaは動的型付け!
###1-1-4. Juliaは多重ディスパッチ!
###1-1-5. 直感的な記述!
###1-1-6. 真のマクロ!
###1-1-7. 並行・並列プログラミング!
###1-1-8. 組み込みパッケージマネージャ!

##1-2. Juliaのインストール
###1-2-1. Juliaの公式バイナリをインストールする
####Windows (Windows10、Windows11)
####macOS (x86、ARM)
####Linux
###1-2-2. juliaupを利用したインストール
#### juliaupのインストール(Windows10、Windows11)
#### juliaupのインストール(Linux、macOS等)
#### juliaupによる Juliaのインストール・更新(Windows/Linux/macOS共通)
####コラム. 安定版とLTS版

##1-3. Juliaを REPLで使用する
###1-3-1. Julia モード
###1-3-2. ヘルプモード
###1-3-3. シェルモード
###1-3-4. パッケージモード
###1-3-5. 履歴検索機能

##1-4. Juliaを JupyterLabで使用する
###1-4-1. JupyterLabおよび IJuliaのインストール
####IJuliaを利用して JupyterLabをインストールする
####JupyterLabを Pythonのパッケージマネージャからインストールする
####デスクトップアプリとしてインストールする
####Julia カーネルを追加する
###1-4-2. JupyterLabによる Juliaの実験
###1-4-3. 各種クラウドサービス(ノートブック環境)での Juliaの利用
####コラム. Pluto.jl

##1-5. Juliaをエディタで使用する
###1-5-1. Visual Studio Code (VSCode) と Julia プラグインの導入

#第2章 Juliaの基本文法

##2-1. リテラル
###2-1-1. 数値リテラル
####整数値
####浮動小数点数値
####有理数/複素数
###2-1-2. 文字リテラル/文字列リテラル
####文字
####文字列
###2-1-3. 正規表現リテラル
###2-1-4. 非標準文字列リテラル
###2-1-5. 範囲リテラル
###2-1-6. 配列リテラル
####ベクトル(1次元配列)
####行列(2次元配列)
####多次元配列(Julia v1.7以降)
####ベクトル・行列の結合
####多次元配列の結合(Julia v1.7以降)
###2-1-7. タプルリテラル/名前付きタプルリテラル
###2-1-8. その他のリテラル

##2-2. 変数/定数
####コラム. Juliaの定数は実は変更できる

##2-3. 演算子
###2-3-1. 算術演算子
####除算演算子
####冪乗演算子
###2-3-2. ビット演算子
###2-3-3. 論理演算子
###2-3-4. 文字列操作演算子
###2-3-5. 代入演算子
###2-3-6. 比較演算子
####同値演算子
####等価演算子
####包含演算子
####比較演算子の連鎖
###2-3-7. その他の演算子
###2-3-8. 演算子の優先順位
####コラム. 演算子に使用できる Unicode文字

##2-4. 関数
###2-4-1. 関数呼び出し
####関数呼び出しの基本
####キーワード引数
####引数展開
###2-4-2. 関数定義
####関数定義の基本
####無名関数
####関数の多重定義
####可変長引数
####オプショナル引数/キーワード引数
####型アノテーション
#### return文
###2-4-3. 関数適用演算子

##2-5. 制御構文
###2-5-1. 条件分岐
###2-5-2. 繰り返し
###2-5-3. 例外処理

##2-6. その他の構文
###2-6-1. 内包表記
###2-6-2. ドット構文
###2-6-3. Doブロック構文
###2-6-4. beginブロックと letブロック

##2-7. 型の基本
###2-7-1. プリミティブ型
####プリミティブ整数型
####プリミティブ浮動小数点数型
####その他の標準プリミティブ型
###2-7-2. 複合型
###2-7-3. コレクション型
####配列
####辞書
####集合
####タプル/名前付きタプル
###2-7-4. 文字列型
###2-7-5. 型アノテーション

##2-8. モジュール
###2-8-1. importと using
###2-8-2. 標準モジュールとモジュールのネスト
###2-8-3. モジュールの定義

【基本編】
#第3章 Juliaの標準ライブラリ関数

##3-1. 便利な標準関数たち
###3-1-1. 演算系(1) 除算・剰余算系
####整数除算関数
####整数剰余算関数
####整数除算・剰余算複合関数
####値域を指定した整数剰余算関数と整数除算関数
####整数除算・剰余算関数についての補足
####コラム. mod1()関数の使い途
####その他の除算・剰余算関連関数
###3-1-2. 演算系(2) 結合演算
####積和演算
####冪剰余演算
###3-1-3. 演算系(3) その他の演算系関数
###3-1-4. 数学系(1) 三角関数、指数関数、対数関数
###3-1-5. 数学系(2) その他の数学関数
###3-1-6. 文字列関連関数
####文字・文字列情報取得関数・演算子
####文字・文字列比較関数・演算子
####文字列操作関数・演算子
####文字列検索・置換関数
####Juliaの正規表現
####パターンに指定出来るもの
###3-1-7. 配列・集合演算
####コレクション情報取得関数・演算子
####配列関連関数・演算子(1) 配列生成関連
####配列関連関数・演算子(2) 配列加工・更新
####コラム. 破壊的操作
####配列関連関数・演算子(3) ベクトル・行列関連
####配列関連関数・演算子(4) デック(両端キュー)
####配列関連関数・演算子(5) 集計・畳み込み関連関数
####配列関連関数・演算子(6) 検索関連関数
####辞書関連関数
####集合関連関数・演算子
####タプル・名前付きタプル関連関数
###3-1-8. その他「あると便利」がある関数
###3-1-9. 演算子は関数

##3-2. 標準ライブラリ
###3-2-1. Printf
####コラム. @printfはなぜマクロ?
###3-2-2. Dates
###3-2-3. Statistics
###3-2-4. LinearAlgebra

##3-3. 関数・引数の組合せ
###3-3-1. 文字列→数値変換
###3-3-2. 数値の丸め処理
###3-3-3. all() / any()
###3-3-4. 引数にジェネレータ式を指定出来るその他の例

#第4章 型システム

##4-1. Juliaの型システムの概要

##4-2. 公称型システムとサブタイピング
###4-2-1. 公称型システム
###4-2-2. 基本型と派生型
###4-2-3. 型階層
####コラム. 参考:公称型ではない型システム
###4-2-4. 抽象型と具象型
###4-2-5. Any型

##4-3. パラメトリック型
###4-3-1. パラメトリック型
###4-3-2. 型パラメータに指定出来るもの
###4-3-3. パラメトリック型のサブタイピング
###4-3-4. UnionAll型
###4-3-5. パラメトリック抽象型

##4-4. 型制約
###4-4-1. 型制約とは
###4-4-2. 制約の種類
###4-4-3. 型制約とサブタイピング

##4-5. ユーザ定義型
###4-5-1. ユーザによる型の定義
###4-5-2. コンストラクタ定義

##4-6. 特殊な型
###4-6-1. Tuple型・NamedTuple型
###4-6-2. Union型
###4-6-3. ボトム型
###4-6-4. シングルトン型
###4-6-5. Type{T}型セレクタ
###4-6-6. 型エイリアス

#第5章 多重ディスパッチ

##5-1. 多重ディスパッチとは?

##5-2. 多重定義
###5-2-1. 関数の定義(おさらい)
###5-2-2. 型シグニチャ
###5-2-3. 実例
###5-2-4. メソッドの曖昧さの解決
####コラム. キーワード引数と多重ディスパッチ

##5-3. ポリモーフィズム
###5-3-1. Juliaのポリモーフィズム
####コラム. Juliaと部分型多相
###5-3-2. 実例

##5-4. 演算子オーバーロード
###5-4-1. 演算子オーバーロードも多重ディスパッチ
###5-4-2. 実例
###5-4-3. 型昇格ルール

##5-5. 糖衣構文
###5-5-1. 糖衣構文(の多く)も多重ディスパッチ
###5-5-2. 例
####例1. インデクシング関連
####例2. プロパティ
####例3. 後置演算子 '~

##5-6. Holy トレイト
###5-6-1. Holy トレイトとは?
###5-6-2. 実例: IndexStyle

##5-7. その他の実用例
###5-7-1. sort()のアルゴリズム指定
###5-7-2. Val{N}によるディスパッチ

#第6章 イテレーション

##6-1. Juliaのイテレーションの仕組み
###6-1-1. イテレーションも糖衣構文
###6-1-2. iterate()関数
###6-1-3. Base.IteratorSizeと Base.IteratorEltype
#### Base.IteratorSize
#### Base.IteratorEltype

##6-2. イテレーションプロトコルの実装
###6-2-1. サイズが決まっているパターン
####例1. 配列( AbstractArray )の派生型とする場合(推奨)
####例2. 配列( AbstractArray )の派生型としない場合
###6-2-2. 長さが不定のパターン
####例. コラッツの予想
####その他の例
###6-2-3. 無限列挙
####例. フィボナッチ数列

##6-3. Iteratorsサブモジュール
####コラム. Iterators.~のイテレータ型とそのトレイト実装

#第7章 ブロードキャスティング

##7-1. ブロードキャスティングとは?
###7-1-1. ドット構文(おさらい)
###7-1-2. ブロードキャスティング
###7-1-3. @.マクロ
###7-1-4. ブロードキャスティングの特徴

##7-2. ブロードキャスティングの実装
###7-2-1. ドット構文も糖衣構文
###7-2-2. ブロードキャスティングの仕組み
#### Broadcast.broadcasted()と Broadcast.materialize()
#### Broadcast.broadcastable()
#### Broadcast.BroadcastStyle

##7-3. ブロードキャスティングの適用
####実例(1) 配列の派生型
####実例(2) イテレーションプロトコルを実装した型
####コラム. もっと柔軟なブロードキャスティング計算適用へのヒント

#第8章 メタプログラミング

##8-1. 用語の説明・おさらい

##8-2. メタプログラミングとは?

##8-3. Expr型とシンボル
###8-3-1. AST
###8-3-2. Expr型
###8-3-3. シンボル
###8-3-4. QuoteNode

##8-4. 解析と評価
###8-4-1. Meta.parse()
###8-4-2. eval()
###8-4-3. 式展開
###8-4-4. コードの動的生成

##8-5. マクロ
###8-5-1. Juliaのマクロ呼び出し
###8-5-2. マクロの定義
###8-5-3. マクロの動作原理
###8-5-4. 衛生的なマクロ
###8-5-5. 実例
###8-5-6. 非標準文字列リテラルとコマンドリテラル

##8-6. 生成関数
###8-6-1. 生成関数 (Generated Function) とは
###8-6-2. 生成関数の特徴と注意点
###8-6-3. 実例

#第9章 並行・並列処理

##9-1. タスクとチャネル
###9-1-1. タスク
###9-1-2. 通知
###9-1-3. チャネル
###9-1-4. タスク・チャネル による並行処理
####コラム. ネット検索の例が並行動作する理由

##9-2. スレッド
###9-2-1. Juliaでスレッドを利用する
###9-2-2. スレッドの基本
#### Threads.@threadsマクロ
#### Threads.@spawnマクロ
#### Threads.@threadsと Threads.@spawnの使い分け
#### Channel(spawn=true)
#### Threads.foreach()
###9-2-3. 実用例
####ソートアルゴリズムの並列化
#### Iterators.mapのマルチスレッド化
###9-2-4. スレッドセーフ
#### Threads.@atomicマクロ(Julia v1.7以降のみ)
####ロック機構による排他制御(1)
####ロック機構による排他制御(2)
####コラム. デッドロック

##9-3. マルチプロセス
###9-3-1. Juliaのマルチプロセシング
###9-3-2. マルチプロセスの基本
#### @everywhere
#### remotecall()
#### pmap()
#### RemoteChannel
#### SharedArray
#### @distributed
####コラム. 分散処理

#第10章 パッケージマネージャ

##10-1. Juliaのパッケージマネージャ
###10-1-1. REPLのパッケージモード
###10-1-2. Project.toml / Manifest.toml
###10-1-3. Pkg標準ライブラリ
####コラム. Juliaのパッケージ管理の単位

##10-2. 基本的な使い方
####パッケージの追加・更新・削除
####パッケージの固定・固定解除、開発モード・開発モード解除
####その他のパッケージ関連コマンド
####パッケージレジストリ関連コマンド

##10-3. 環境の管理
###10-3-1. 環境(仮想環境)
###10-3-2. プロジェクト
###10-3-3. パッケージディレクトリ
###10-3-4. パッケージディレクトリの共有・公開

##10-4. パッケージ開発の基本
###10-4-1. PkgTemplates.jlによるパッケージディレクトリの生成
###10-4-2. 構成ディレクトリ・ファイルについての補足
####テストの追加
####パッケージのビルドフェーズの追加
###10-4-3. 公式パッケージ化のヒント
####コラム. JupyterLab上での操作

【実践編】
#第11章 数値計算

##11-1. Juliaで数値計算

##11-2. NLsolve.jlによる非線形方程式の求解

##11-3. DifferentialEquations.jlによる常微分方程式の数値的解法

##11-4. その他の外部パッケージ情報
####数値計算全般
####最適化関連
####微分方程式関連
####その他

#第12章 データ解析

##12-1. Juliaでデータ解析

##12-2. 基本的な道具の使い方
###12-2-1. 可視化(データプロット)の基本
####コラム. Plots.jlのレシピ機能

##12-2-2. データフレームの基本

##12-3. 実例:ネット上に公開されているデータの読み込みと簡単な解析

##12-4. 発展的な情報
####統計・データ解析全般
####データプロット関連
####データフレーム・データ操作関連

#13章 機械学習

##13-1. Juliaで機械学習

##13-2. MLJ.jl

##13-3. Flux.jl

##13-4. 発展的な情報
####機械学習全般
####深層学習(Deep Learning)関連
#### MLJ.jl関連
#### Flux.jl関連

著者プロフィール

後藤 俊介  (ゴトウシュンスケ)  (著/文

後藤俊介
有限会社来栖川電算所属のエンジニア。JuliaTokai、機械学習名古屋などのコミュニティ活動に携わり、Juliaについての情報を発信している。
Twitter ID:@antimon2

上記内容は本書刊行時のものです。