WHAT'S NEW
CONTENTS
「お気楽 Ruby プログラミング入門」のフォントを Web フォント (Noto Sans JP, Noto Sans Mono) に変更し、印刷用の CSS を追加しました。Web ブラウザの印刷機能を使って PDF に変換することもできます。表示が崩れるときはフォント Noto Sans Mono CJK JP をインストールしてください。
お気楽 Ruby プログラミング入門
CONTENTS
- 2023/01/15 第 1 回 Ruby の基礎知識 データ構造編
Ruby のインストール、Ruby のプログラム、Ruby のデータ型、数、文字列、ヒアドキュメント、配列、シーケンス、メソッドの呼び出し方法、配列の操作メソッド、集合演算、ハッシュ、シンボル、コラム TMTOWTDI
- 2023/01/15 第 2 回 Ruby の基礎知識 制御構造編
if 文、if 文の連結、修飾子形式、比較演算子、論理演算子、case 文、while 文による繰り返し、修飾子形式による繰り返し、for 文による繰り返し、繰り返しの制御、範囲演算子、FizzBuzz 問題、数値積分、素数を求める、コラム メソッドの命名規則
- 2023/01/15 第 3 回 関数の使い方
関数の基礎知識、関数の定義方法、ローカル変数とグローバル変数、ローカル変数の定義と有効範囲、デフォルト引数、キーワード引数、ハッシュを展開して関数に渡す、可変個の引数、配列を展開して関数に渡す、多重代入、複数の値を返す、データの探索、二分探索、素数を求める (2)、値呼びと参照呼び
2023/02/23 キーワード引数、ハッシュを展開して関数に渡す を追加
- 2023/01/15 第 4 回 ファイル入出力
ファイル入出力、標準入出力の使い方、データの合計値を求める、列ごとの合計値を求める、for 文と IO オブジェクト、ファイルのアクセス方法、エンコーディングの設定、コマンドライン引数の取得、書式出力、ファイルを行単位で連結する、コラム 同一性の判定
- 2023/01/15 第 5 回 正規表現
正規表現の基礎知識、文字の指定、繰り返し、最長一致と最短一致、グループ、位置の指定、選択、正規表現の使い方、文字列の検索、scan() と split()、クロスリファレンサ、プログラムの作成、実行例、コラム grep と正規表現
- 2023/01/15 第 6 回 正規表現と文字列の置換
後方参照、正規表現のコンパイルと照合、MatchData のメソッド、拡張記法、文字列の置換、文字列置換ツールの作成、文字の置換、複数の文字を一つの文字に置換、タブの展開、空白をタブに置換、文字コード、コラム gresreg
- 2023/01/15 第 7 回 関数の再帰定義
再帰定義の基本、再帰定義のポイント、ユークリッドの互除法、末尾再帰と繰り返し、クイックソート、クイックソートのプログラム、クイックソートの欠点、バックトラック法と再帰定義、順列の生成、順列を配列に格納する、コラム たらいまわし関数
- 2023/01/15 第 8 回 イテレータと高階関数
イテレータとブロック、イテレータの作り方、イテレータの制御、高階関数、マッピング、フィルター、畳み込み、手続きオブジェクト、ブロック引数、手続きオブジェクトとブロック、レキシカルスコープ、ブロックのスコープ、クロージャ、ジェネレータ、ジェネレータをリセットする
- 2023/01/15 第 9 回 オブジェクト指向の基礎知識
オブジェクトとは、クラスとインスタンス、メソッド、Ruby のクラス、Ruby のインスタンス変数、Ruby のメソッド、アクセスメソッドの定義、メソッドのアクセス制御、Point クラス、Point3D クラス、クラス変数、クラスメソッド、コラム 遅延評価
- 2023/01/15 第 10 回 連結リスト
連結リストの構造、クラスの定義、連結リストの操作メソッド、作業用メソッド nth()、データの取得、データの挿入、データの削除、イテレータ、データの変換、演算子の定義、角カッコによるアクセス、演算子 + の実装、演算子 * の実装、コラム 連結リストと Lisp
- 2023/01/15 第 11 回 継承
継承、単一継承、多重継承、継承の仕組み、単一継承の使い方、メソッド結合、実行例、クラス変数とクラスメソッドの継承、データ型の継承、制限付き連結リスト、コラム1 レシーバと self、コラム2 動的プログラミング
- 2023/01/15 第 12 回 多重継承と Mix-in
多重継承の問題点、Mix-in、モジュールの使い方、モジュールとクラスの優先順位、Comparable と Enumerable モジュール、スタック、継承は is-a 関係を表す、スタックの実装、キュー、キューの実装、プログラムの作成、コラム クラスベースとプロトタイプベース
- 2023/01/15 第 13 回 二分木
木構造、二分木、クラスの定義、データの探索、データの挿入、データの削除、最小値の探索と削除、データの削除処理、巡回、public メソッドの作成、実行例、コラム CLOS
- 2023/01/15 第 14 回 例外と大域脱出
例外処理、例外の捕捉、begin 文の使い方、例外の送出、例外の定義、大域脱出、catch と throw、ensure 節、逆ポーランド記法、逆ポーランド記法の計算、スタックと演算子の定義、数式の計算処理、数式の入力処理
●付録
- 2023/01/28 付録A
Enumerator /
Enumerator::Lazy /
Fiber /
Rational /
Complex /
整数のビット演算 /
構造体 (2023/02/25)
2023/02/23 パターンマッチ
パターンマッチの基本、演算子 === の動作、配列のパターンマッチ、ガード節、配列パターンの入れ子、As pattern、ハッシュのパターンマッチ、クラスでパターンマッチを行う
- 2023/01/21 付録B : 簡単なプログラム
九九表の作成 / 整数列の和 / 度数分布表 / 総和、最大値、最小値、平均値 / 累乗 / ハノイの塔 / フィボナッチ数
組み合わせの数 / パスカルの三角形 / 組み合わせの生成 / 順列の生成 / 完全順列の生成 / 素数 / 双子素数
素因数分解 / 約数の個数 / 約数の和 / 約数 / べき集合 / 経路の探索
- 2023/01/21 付録C : Puzzle DE Ruby!!
小町算 / 騎士の巡歴 / 魔方陣 / ライツアウト / 8クイーン / 8パズル / マスターマインド
- 2023/01/21 付録D : ソート
バブルソート / シェーカーソート / 挿入ソート / 選択ソート / シェルソート / コームソート / クイックソート
ヒープソート / マージソート
初版 2008 年 10 月 - 12 月
改訂 2017 年 1 月 15 日
改訂二版 2023 年 1 月 15 - 28 日
●番外編
- 2023/01/21 継続渡しスタイル
継続とは?、継続渡しスタイル (CPS) とは?、再帰呼び出しと CPS、二重再帰と CPS、CPS の便利な使い方、高階関数と CPS、CPS による木の巡回、CPS による継続の保存と実行の再開、Appendix: 末尾再帰と繰り返し、末尾再帰をスタックオーバーフローせずに実行する、CPS での実行
- 2023/01/21 継続 (continuation)
Ruby の継続、大域脱出、繰り返しの中断、再帰呼び出しからの脱出、ジェネレータの作成、高階関数をジェネレータに変換、コルーチン、ファイバーの動作、ツリーマッチング、コルーチンの作成、エラトステネスの篩
- 2023/01/21 非決定性
amb の動作、amb の作成、順列の生成、解をすべて求める、論理パズル、データ構造の定義、補助関数の作成、論理パズルの解法、amb は深さ優先探索、経路の探索、幅優先探索版 amb の作成、経路の探索 (2)、水差し問題
- 2023/01/22 遅延評価
遅延評価の実装、たらいまわし関数、遅延評価による高速化、クロージャによる遅延評価
- 2023/01/22 遅延ストリーム
遅延ストリームの構造、遅延ストリームの生成、無限ストリームの生成、遅延ストリームの操作メソッド、遅延ストリームの連結、高階関数、遅延ストリームへの変換、flat_map()、take_while() と drop_while()
- 2023/01/22 遅延ストリーム (2)
zip() と zip_with()、遅延ストリームの併合、集合演算、ハミングの問題、順列の生成、組み合わせの生成、エラトステネスの篩、より高速な方法、双子素数
- 2023/01/22 immutable な連結リスト
immutable な連結リストの仕様と実行例、プログラムリスト (imlist.rb)、リストで遊ぼう (sum, minimum, maximum, FizzBuzz, butlast, group, partition, quick_sort, merge_list, merge_sort, permutation, combination, distinct, union, intersection, difference, subset?, power_set, sieve, mastermind)
- 2023/01/28 コレクションクラス
双方向リスト / ディキュー / ヒープ (プライオリティキュー) / トライ / パトリシア / Ternary Search Tree
- 2023/02/04 コレクションクラス [2]
ハッシュ法 (チェイン法, オープンアドレス法) / 二分木 / AA 木 / スプレー木
- 2023/02/04 データ圧縮
ランレングス / Switched Run Length Encoding / Zero Length Encoding
整数の符号化とビット入出力 / ハフマン符号 / LZSS 符号 / LZW 符号
- 2023/02/04 データ圧縮 [2]
LZB 符号 / LZW 符号の改良 / LZT 符号 / スプレー符号 / レンジコーダ (range coder)
- 2023/02/18 複素関数
指数関数と対数関数、三角関数、双曲線関数、平方根、逆三角関数 (実数、複素数)、逆双曲線関数 (実数、複素数)
- 2023/03/18 mutable な連結リスト
Lisp / Scheme のリスト、ドットリスト、リストの入れ子、コンスセルの定義、リストの基本関数、リストの生成、基本的なリスト操作関数、リストの破壊的連結、リストの破壊的反転、マッピング、循環リスト、循環リストの判定、リストのマージ、破壊的なマージ、マージソート、破壊的なマージソート
●参考文献, URL
- まつもとゆきひろ, 石塚圭樹, 『オブジェクト指向スクリプト言語Ruby』, 株式会社アスキー, 1999
- オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル, (本家)
- Ruby入門(全26回), (ドットインストール)
お気楽 Ruby/Tk 超入門
CONTENTS
●参考文献, URL
- tk | RubyGems.org
- Ruby/Tk - FrontPage, (永井秀利さん)
- Ruby/Tk講習会 at 都城 (PDF)
- WebばかりがUIじゃない! ~ 新しくなったRuby/Tk, (PDFファイルがダウンロードされます)
- TkDocs - Tk Tutorial, (TkDocs)
権利・免責事項など
『お気楽 Ruby プログラミング入門』と『お気楽 Ruby/Tk 超入門』の著作権は筆者「広井誠 (Makoto Hiroi)」が保持します。無断使用や無断転載は禁止いたします。
『お気楽 Ruby プログラミング入門』と『お気楽 Ruby/Tk 超入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。
ただし、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。
Copyright (C) 2006-2024 Makoto Hiroi
All rights reserved.