ここのところ,細々と開発を続けて来たオブジェクト指向スクリプ
ト言語 ruby を公開します.
rubyは「手軽なオブジェクト指向」をテーマにしたオブジェクト指
向スクリプト言語インタプリタです.一応,perl程度の仕事は大体
こなせる程度の機能は持っています.
特徴は
+ Alogolっぽい文法(ちょっと独特)
+ 変数に型は無い
+ 変数名でスコープが分かる($varは大域変数,Varは定数,var
はローカル変数,@varはインスタンス変数)
+ 普通のオブジェクト指向機能(クラス,メソッドコールなど)
+ 珍しいオブジェクト指向機能(Mixin, 特異メソッドなど)
+ 演算子オーバーロード
+ 例外処理機能
+ イテレータとクロージャ
+ ガーベージコレクタ
+ ダイナミックローディング (アーキテクチャによる)
+ 簡易Tkインタフェースもある
+ ドキュメントが貧弱(特徴じゃないぞ)
などがあります.後,C言語による拡張も容易にできるようになっ
ています.
では,伝統に従い"hello world"プログラムを提示します.
print "hello world\n"
# これではなんの特徴もありませんね.
解説すると,これは`main'オブジェクト(デフォルトのself)に
printというメッセージを引数"hello world\n"とともに送り付けて
います.ruby では全てはオブジェクトで単なる関数呼出しという
ものはありません.
この言語やプログラムに関する質問は私<ma...@caelum.co.jp>まで
メイルしてください.メイリングリストも立ち上げましたので(ま
だメンバーは私だけ),こちらでも結構です.
fmlで運用していますので,このアドレスにメイルを送れば,自動
的に登録されます.
まつもと ゆきひろ /:|)
バグがありました.rubyを使おうと思った人はこのパッチを当てて
ください.
# いつもなにか失敗があるんだよなあ.
--- array.c~ Thu Dec 21 14:39:19 1995
+++ array.c Thu Dec 21 14:36:06 1995
@@ -283,8 +283,8 @@
end = len + end;
if (end < 0) end = 0;
}
- if (len < end) end = len;
- if (beg < end) {
+ if (end > len) end = len;
+ if (beg > end) {
*lenp = 0;
}
else {