[#30827] 正規表現まわりの parse — sheepman <sheepman@...>
こんにちは。
[#30850] ruby-mode.el の改善案 — sheepman <sheepman@...>
こんにちは。
[#30852] Ruby/Tk on Windows — hidaka@... (HIDAKA Takahiro)
ひだかです。
[#30855] オブジェクトをソースへ — Daisuke Aoki <dai@...>
青木@横浜です。
[#30872] ext/curses — Takaaki Tateishi <ttate@...>
立石です.
[#30885] SAGE — "Shin'ya Adzumi" <adzumi@...>
あづみです。
[#30897] ActiveScriptRuby + showModalDialog — keiichi matsunaga <ma2@...>
松永です。
[#30920] [REQ] Regexp#match! — Minero Aoki <aamine@...>
あおきです。
At Thu, 16 Aug 2001 11:24:45 +0900,
[#30945] file exist check method? — "Inoue" <inoue@...>
井上です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
こんにちは、なかむら(う)です。
新井です。
なかだです。
新井です。
こんにちは、なかむら(う)です。
新井です。
もりきゅうです。長文ごめんなさい。
岩月と申します。そろそろ寝なくては。
もりきゅうです。
もりきゅうです。
なかだです。
もりきゅうです。
すぎむし。
なかだです。
もりきゅうです。subject 変えました。
In <200108201823.AA00825@yoshida.nifty.ne.jp>
File#join とか File#split とか使った事ないんですが…
なかだです。
From: nobu.nakada@nifty.ne.jp
In <20010823.222131.74756515.pegacorn@jcom.home.ne.jp>
こんにちは、なかむら(う)です。
なかだです。
もりきゅうです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#30961] popen() で Insecure PATH — 堀川 久 <vzw00011@...>
こんにちは。
まつもと ゆきひろです
こんにちは。
In <3b7e90ac.6968%vzw00011@nifty.ne.jp>
[#30987] [REQ] String#slice(re, n) — Minero Aoki <aamine@...>
あおきです。
[#31002] ruby のインストール — Andre Ribeiro Hanai <andre@...>
始めまして葉内です。
[#31005] インストールしました — 嶋崎 正貴 <hayashih@...>
嶋崎と申します
From: 嶋崎 正貴 <hayashih@interbroad.or.jp>
[#31035] 安全な文字列の評価方法 — 斉藤和樹 <QZS01353@...>
こんにちは。斉藤です。
[#31060] WIN32OLE の質問 : 環境変数の設定はどうやる? — Hirofumi Tamori <tamori@...>
[#31066] [Q] string underline in emacs — "K.Kosako" <kosako@...>
emacs 20.7.2でruby-mode.elを使用しています。
[#31069] ruby と mysql の使える webhosting — Ryuichiro Hara <ruby@...>
FAQかもしれないのですが...
[#31071] ruby on sun — Koichi Takehara <Koichi.Takehara@...>
ルビー初心者の竹原です。
[#31128] Ruby.exe で実行中は編集禁止? — Take_tk <ggb03124@...>
Ruby.exe(ruby 1.6.4 (2001-06-04) [i586-mswin32])で一日中回しているスク
[#31144] create_process または Win での外部コマンド実行 — Take_tk <ggb03124@...>
Windows で外部コマンドを実行するにはどういう方法があるのでしょうか?。
こんにちは、なかむら(う)です。
なかだです。
たけ(tk)です。
なかだです。
たけ(tk)です。
なかだです。
In message <200108291540.f7TFecg03766@sharui.nakada.kanuma.tochigi.jp>
[ruby-list:30941] Re: [REQ] Regexp#match!
まつもと ゆきひろです
In message "[ruby-list:30932] Re: [REQ] Regexp#match!"
on 01/08/16, Minero Aoki <aamine@mx.edit.ne.jp> writes:
|index は、ぼくも変かなあと思います。マッチでも match という
|名前なら変だと思います。でもうまい名前があれば例外でもいい
|(or 例外のほうが便利) 場面はあるだろうと。
うむ、気持ちは分かります。ただ、今出ているのではまだ弱い気も
します。
|そーですねえ。or/unless ではダメな理由は、まず
|
| process re.match( str )[1]
|
|のように書きたい (ローカル変数を無駄に増やしたくない) という点
|です。つまりマッチが目的でなくその結果の MatchData が目的で、
|その結果を(入りくんだ) 式の中に使いたいのです。この場合の目的は
|主に気持ちよさです。
これは現状でもnilには[]が定義されていないのでNameErrorになり
ますよね。内部エラーならこれで十分という気がします。もちろん、
|(この論理で行くと NameError でもいいじゃないか、と言われそうですが
| それに対しては「じゃあなんで RegexpMissmatch ではいけないのか?」
| と答えます。わざわざ名前も変えているわけだから、Ruby が知っている
| 範囲で詳細に答えてくれるぶんにはなにも問題はないはず。)
という反論はあるわけですが、(あおきさんはこの論法が好きみた
いですが)、これはあまり効果的ではないと思います。無限に細分
化することが現実的でない以上、どこかに線を引く必要があるわけ
ですが、これだと、今話している事象がどこかに引かれるはずの線
のどちら側にあるべきかについて述べていないからです。
|また前提としてマッチすることを期待したい場面というのもあります。
|たとえると Eiffel の precondition に re.match(arg) が書いてある
|ようなもので、マッチする文字列を用意するのはクライアント側の
|責任である場合です。この場合にはマッチするかどうかはそもそも
|そのメソッドの責任の外にあると考えられるので、マッチしないのは
|まさに「例外」として扱ってほしいわけです。あるいは感覚的に言うと、
|ゼロ除算をいちいちチェックしたくない、というのと一緒です。
こちらは前述のものよりはまだ説得力があると思いますが、その場
合には今度は execute という名前がふさわしくなくなるように思
います。
あと、Eiffelのrequire節(precondition)にはboolean式を置けばよ
いので、自分で明示的に例外を発生させる必要はない(ということ
はRubyでもassertのようなものがあれば自ら例外を発生させる必要
はない) というのも押さえておく必要がありますね。
|ぼくの書いたものから拾ってきた具体例だと、match と raise を組み合わ
|せていてしかも MatchData を一回しか使わない例には以下のようなのが
|ありました。ついでに失敗した場合の責任の所在も書きました。
これらについては発生させる例外がRegexpMismatchで済むようなも
のはないように思われるので、例外を発生させても結局はrescueす
る必要があり、となると例外がNameErrorだろうが、ArgumentError
だろうが、あるいは例外ではなく単にnilを返すのであろうが、あ
んまり変わらないことになりそうな気がします。というか、コード
的にはむしろnilを返した方がすっきりする?
まつもと ゆきひろ /:|)