秋だ!Rubyを学ぼう! ~Rubyを知るための26ポスト
このブログはプログラミング言語Ruby関連のポストが大半を占めていて、それらは僕自身がRubyについて学んだことをベースに書かれています。
その一部にはこれからRubyを学ぶ人や学び始めたばかりの人が、Rubyを知るための助けになる内容が含まれてると思います。またブログを書く上で自分は他にないユニークな視点でといつも心掛けているので、ここで他では得られなかった気づきを得られるかもしれません。手前味噌ですけど.. :)
そんなわけで..
このブログからRuby初学者~中級者向けの投稿26本を選んで、簡単な説明を付けて一覧できるようにしてみました。少し古い投稿も含まれていますが、Rubyを学ぶ上でこれらの記事があなたの参考になったとしたらそんなにうれしいことはありません。
Rubyの言語仕様に関するもの
Rubyは純粋なオブジェクト指向プログラミング言語です。「純粋な」というのがRubyのミソで、オブジェクト指向機構を持った他のプログラミング言語とはこの純粋性で一線を画しています。この記事はこの点に焦点を当てて、Rubyのオブジェクト指向機構について説明しています。ただシリーズ物として書き始めたのですが、第3回で止まったままです..
2. + (足す)から始めるRuby(2011-08-10)
Rubyの演算子のほとんどはオブジェクトに対するメソッド呼び出しです。つまりRubyではオブジェクト指向の純粋性を守りながら、多くの演算子を実装しています。この記事はこのことを通してRubyの特徴を「1から始めるRuby」に倣って解説しています。
3.Rubyチュートリアル ~英文小説の最頻出ワードを見つけよう!(全17回)(2009-04-07)
この記事は英文小説から最頻出ワードを抽出するプログラムの作成を通して、Rubyを学ぶチュートリアル・シリーズになっています。小説風の仮想設定から始まって最初にRubyの特徴を解説し、続いてプログラムの改良を延々と続けていくチュートリアルです。いつも途中で投げ出してる僕が全17回最後まで書き上げられためずらしい記事です ^ ^;
4.Rubyのクラスはオブジェクトの母、モジュールはベビーシッター(2008-08-16)
Rubyの世界の三大要素といったら、クラス モジュール オブジェクトを差します。これらを理解せずにRubyを理解することはできません。この記事はこの三大要素の関係性についてまとめています。
5.RubyのObjectクラスは過去を再定義するタイムマシンだ!(2008-09-27)
RubyのクラスツリーのルートはObjectクラスです。1この記事はObjectクラスとそこにインクルードされるKernelモジュールについて説明しています。
6.RubyのModuleクラスはすべてのモジュールの母であり同時にすべてのクラスの父である!(2008-09-30)
ModuleクラスはRubyにおける最重要クラスの1つで、これはモジュールの生成クラスであると共に、Classクラスのスーパークラスでもあります。この記事はそのModuleクラスについて説明しています。
7.Rubyのブロックはメソッドに対するメソッドのMix-inだ!(2008-08-09)
Rubyのブロックはメソッドにコードの塊を渡すことができる仕組みです。この記事はブロックおよびそのパワーについて解説しています。
8.Rubyのブロック(クロージャ)はローカル変数をインスタンス変数に変えるマジックだ!(2009-08-26)
Rubyのブロックはクロージャつまり、それが作られた環境をそこに閉じ込めることができます。この記事はそのようなブロックのスコープについて説明しています。
9.Rubyのyieldは羊の皮を被ったevalだ!(2008-08-12)
Rubyのブロックはパワフルですが、この記事はevalとの対比でそのパワーを説明しています。
10.Rubyのオブジェクトは生物なんかじゃない、トップレベルこそが生物なんだ!(2008-09-05)
Rubyのトップレベルではオブジェクト指向のルールに従わない手続き指向のプログラミングが実現できます。この記事はその環境を構築しているトップレベルの不思議について書いています。
11.メソッドが見つからないならRubyに作ってもらえばいいよ! - If method_missing, define_method by Ruby -(2008-10-22)
Rubyではメタプログラミングというのが1つの重要なプログラミングの手法です。この記事では通常のメソッド定義の方法に始まって、define_method method_missingを使った動的なメソッド定義の方法までを解説しています。
12.Rubyのシンボルは文字列の皮を被った整数だ!(2008-08-02)
Rubyにはあまり他の言語には見られないシンボルというオブジェクトがあります。この記事は文字列と数字との比較からシンボルが何であるかを解説しています。
13.RubyのSymbol#to_procを考えた人になってみる(2008-09-17)
Rubyでは例えば配列の合計値を求めるのに、[1,2,3,4,5].inject { |m,i| m + i } #=> 15 とする代わりに、 [1,2,3,4,5].inject(&:+) #=> 15 と書けますが、2 それはSymbol#to_procのお陰です。この記事ではその仕組を解説しています。
14.Rubyのモジュール関数を理解しよう!(2010-11-05)
RubyにはMath.sqrtのようなモジュール・メソッドとしても、また関数的にも呼び出されるモジュール関数というものがあります。この記事はその実装に挑戦しています。
15.RubyのProcオブジェクトはキューティーハニーだ!(2009-09-01)
Rubyでは手続きをProcというオブジェクトに封入できます。この記事はProcオブジェクトの多様性について解説しています。
16.高階関数はコードをユーザフレンドリーにする(2009-02-16)
関数を引数に取ったり、関数を返したりする関数のことを高階関数と呼びます。この記事はRubyでブロックを使わずに高階関数を実現する方法を解説しています。
17.Rubyを使って「なぜ関数プログラミングは重要か」を解読しよう!(2011-01-24)
Rubyはオブジェクト指向プログラミング言語ですが、関数プログラミングを実現できる構造を備えています。この記事は「なぜ関数プログラミングは重要か」という有名な論文をベースにRubyで関数プログラミングを実現する手法について解説しています。残念ながらこのシリーズも3回で力尽きてます..
18.知って得する21のRubyのトリビアな記法 ~ 21 Trivia Notations you should know in Ruby(2011-06-22)
Rubyには他の言語に劣らずちょっとトリビアだけど知ってると便利な記法というのが結構あります。この記事はそれを21個ピックアップして解説しています。
19.IRB それはRubyistの魔法のランプ(2010-11-16)
Rubyにおける対話的実行環境はirbといいます。irbがなければRubyの魅力が半減するほど重要なツールです。この記事はirbの使い方とそのカスタマイズおよび拡張方法について解説しています。
Rubyを使った問題解決に関するもの
以下はRubyの言語仕様に関する記事ではなくRubyを使って問題を解く手法に関する記事です。
20.Ruby、同じことの繰り返しは君に任せるよ ~ 再帰でハノイの塔を解こう!~(2008-07-08)
この記事は再帰およびRubyで再帰を使ってハノイの塔を解く方法を解説しています。
21.Rubyで文字列検索アルゴリズムを表現しよう!(2010-10-17)
文字列検索の代表的なアルゴリズムには、力まかせ検索、ボイヤー-ムーア検索、クヌース-モリス-プラット検索、N-gramインデックス検索、ラビン-カープ検索などがあります。この記事はこれらのアルゴリズムをRubyで実装して比較解説しています。
22.Rubyでソート・アルゴリズムを表現しよう!(2010-10-12)
ソートの代表的なアルゴリズムには、挿入ソート、選択ソート、バブルソート、クイックソート、マージソートなどがあります。この記事はこれらのアルゴリズムをRubyで実装して比較解説しています。この記事ではRubyの簡潔さがよく現れていると思います。
23.Rubyで論理プログラミングしようよ!(2011-08-31)
この記事では複数の選択的な条件から回答を導き出すような論理問題をRubyで解く方法を解説しています。
24.((Rubyで) 書く (Lisp) インタプリタ)(2010-11-10)
100行ほどのPythonコードでSchemeインタプリタを実装したPeter Norvigさんの「((Pythonで) 書く (Lisp) インタプリタ)」という記事があります。この記事ではこれをRubyで実装してPython版と比較解説しています。
25.Rubyでスペル修正プログラムを書こう!(2009-03-26)
Pythonを使ったPeter Norvigさんの「スペル修正プログラムはどう書くか」という記事があります。この記事はこれをRubyで実装したものを解説しています。
26.irbから学ぶRubyの並列処理 ~ forkからWebSocketまで(2011-09-29)
Rubyで並列処理をするには幾つかの方法があります。この記事ではそれらを順次解説しています。
これで26本の解説は終わりです。これらの他にもこのブログにはRubyに関する記事が多数ありますから、興味を持ったら読んでもらえたらうれしいです。
blog comments powered by Disqus