[#8166] jcode.rb for UTF-8 — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
[#8168] {literal}#[]= — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
In message "[ruby-dev:8189] Re: {literal}#[]="
[#8175] yacc generated symbols — Masaki Fukushima <fukusima@...>
福嶋です。
[#8176] Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
まつもと ゆきひろです
もりきゅうです。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
もりきゅうです。
けいじゅ@日本ラショナルソフトウェアです.
えぐち@エスアンドイー です。
In message "[ruby-dev:8266] Re: 例外を処理する 2 項演算子"
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#8204] Re: [ruby-list:18281] Re: アクセス制御について — Shugo Maeda <shugo@...>
前田です。
原です。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
[#8218] append_features — gotoken@... (GOTO Kentaro)
ごとけんです
[#8234] Syntax check in test.rb — Katsuyuki Komatsu <komatsu@...>
小松です。
[#8259] Re: [ruby-list:18468] Re: Array doesn't include Comparable — ttate@...
立石です。
[#8290] [patch] autoupdate — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
まつもと ゆきひろです
[#8305] [patch] duplicated include in regex.c — Minero Aoki <aamine@...>
あおきです。
[#8315] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Kazunori NISHI <kazunori@...>
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
新井です。
まつもと ゆきひろです
新井です。
新井です。
まつもと ゆきひろです
小松です。
まつもと ゆきひろです
ごとけんです
なかだです。
[#8319] Re: Exception handling — Jun Adachi <adachi@...>
安達@沖データと申します。
西@九大です。
けいじゅ@日本ラショナルソフトウェアです.
[#8320] constants definition in extarnal files — nagai@...
永井@知能.九工大です.
In message "[ruby-dev:8320] constants definition in extarnal files"
[#8325] rdtool-0.5.2 and racc-0.9.5/racc-0.10.0 — Katsuyuki Komatsu <komatsu@...>
小松です。
[#8330] Re: Exception handling — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#8332] Re: Exception handling — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#8353] Regexp <=> — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
まつもと ゆきひろです
こんばんは、ZnZです。
まつもと ゆきひろです
[#8366] Re: Exception handling — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#8375] File test methods for Stat — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#8445] [PATCH] Ruby/Tk and ... — Koji Arai <JCA02266@...>
新井です。
新井です。
永井@知能.九工大です.
[#8446] [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...>
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
西@九大です。
まつもと ゆきひろです
これつぐです。
まつもと ゆきひろです
[#8451] new Hash (Re: [ruby-list:19043]) — Wakou Aoyama <wakou@...>
青山です。
原です。
松で
青山です。
[ruby-dev:8232] 例外を処理する 2 項演算子
西@九大です。
#サイン本届きました。ありがとうございます!
From: matz@netlab.co.jp (Yukihiro Matsumoto)
> # ごめんね、西さん(なぜあやまる?)
いえ、たまには、逆に進行する議論(先に結論がありき)があっても楽しいかと。
という事で、既に採用が拒否されている、悲しい機能追加の提案です。
「例外を処理(吸収)する 2項演算子」が欲しいです。仮に !!= とすると、
begin
xxx
rescue
yyy
end
と等価な処理をする
xxx !!= yyy
と記述できる演算子です。(代入でないので、!!= は不適切ですが、とりあえず)
大した例外でない時、
* 呼び出し元まで戻る必要がない
* このコーディング部分で閉じている(解決できる)
* どんな例外が起きても、ある処理を実行したい(まあ rescue ですが)
でも、begin rescue end と書くのが面倒な時に、とても欲しく思います。
例えば、
----------------------------------------------------------------------
1) いろんな eval
begin
eval 'xxx'
rescue
error(...)
end
=> eval 'xxx' !!= error(...)
----------------------------------------------------------------------
2) Web カウンタのデータファイルを開く場合
begin
counter = File .open(filename) .read .to_i
rescue
counter = 0
end
=> counter = File .open(filename) .read .to_i !!= 0
----------------------------------------------------------------------
3) .is_a? のかわりに(ていうか、if 文の代用として、わざと例外を発生させる)
if obj .is_a? Array
x = obj[0]
else
x = 0
end
=> x = obj .read !!= 0
----------------------------------------------------------------------
どちらかと言うと、「様々な条件チェックをあえて記述しない事で、わざと例
外を発生させ、それを処理してもらう」という大名プログラムの為に欲しいの
かもしれません。(あ、それこそが、例外処理の考え?)
そういった「条件を細かく考えないで適当に書くプログラム」が正しい(推奨
されるべき)か?という話も関係すると思いますが、私は「楽に書ける手段が
あるのは大変嬉しい」ですし、「楽に書ける事」が「プログラミングをしてい
て楽しいと感じる事」に繋がると思います。
とか何とか言いましたが、未だに「begin end」に抵抗があるだけなのかもし
れません。「{}」なら一行にできるけど、「begin end」は一行にしたくない
んですよね。「?:」は許せるけど、「if then else end」は嫌だ、みたいな。
で、まとめますと、要するに(最初から言えよ)、
* 様々な条件をいちいち考慮するのは面倒
(⇒ 「例外処理」という考えが生まれた。(少くとも要因の一つ))
* 例外を記述する時、「begin xxx; rescue yyy end」のように1行に書く
のは見辛い、5行にまたがるのも嫌だ、という人が多そう。(卑怯な仮定)
(⇒ 結局、例外処理を使わず、if 文に戻りがち)
で、「もっと使い勝手のよい例外を処理する syntax が欲しい」という事です。
これにより、コーディングスタイルの変換のみならず、プログラミングの思考
の変換(よい方向に)という可能性もあると思います。(GC の出現で、メモリ管
理の苦労から解き放たれ、本質的な部分だけを考慮できるようになったように)
でも結局、「「短くすることを目的とする」ことにはかなり抵抗があります」
とか言われそうだなぁ。(未来を予見)
御考慮、よろしくお願いします。(まだ食い下る狙い)
------------------------------------------------------------------
九州大学大学院システム情報科学研究科 情報工学専攻 博士後期課程三年
西 和則 ( e-mail: kazunori@swlab.csce.kyushu-u.ac.jp )
------------------------------------------------------------------