[#8168] {literal}#[]= — EGUCHI Osamu <eguchi@...>

えぐち@エスアンドイーです。

16 messages 1999/11/01
[#8172] Re: {literal}#[]= — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8176] Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

35 messages 1999/11/01
[#8178] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8212] Re: Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/02

もりきゅうです。

[#8213] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/03

まつもと ゆきひろです

[#8232] 例外を処理する 2 項演算子 — Kazunori NISHI <kazunori@...> 1999/11/05

西@九大です。

[#8233] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/05

まつもと ゆきひろです

[#8236] Re: 例外を処理する 2 項演算子 — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/05

もりきゅうです。

[#8266] Re: 例外を処理する 2 項演算子 — EGUCHI Osamu <eguchi@...> 1999/11/07

えぐち@エスアンドイー です。

[#8269] Re: 例外を処理する 2 項演算子 — gotoken@... (GOTO Kentaro) 1999/11/07

In message "[ruby-dev:8266] Re: 例外を処理する 2 項演算子"

[#8271] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/08

まつもと ゆきひろです

[#8274] Re: 例外を処理する 2 項演算子 — keiju@... (石塚圭樹) 1999/11/08

けいじゅ@日本ラショナルソフトウェアです.

[#8204] Re: [ruby-list:18281] Re: アクセス制御について — Shugo Maeda <shugo@...>

前田です。

12 messages 1999/11/02
[#8205] Re: [ruby-list:18281] Re: アクセス制御について — Shin-ichiro Hara <sinara@...> 1999/11/02

原です。

[#8315] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/15
[#8316] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/15

まつもと ゆきひろです

[#8369] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/18

新井です。

[#8374] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/18

まつもと ゆきひろです

[#8384] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/19

新井です。

[#8405] 1.4.3 (Re: Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{}) — matz@... (Yukihiro Matsumoto) 1999/11/24

[#8319] Re: Exception handling — Jun Adachi <adachi@...>

安達@沖データと申します。

21 messages 1999/11/16
[#8350] Re: Exception handling — Kazunori NISHI <kazunori@...> 1999/11/17

西@九大です。

[#8446] [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/29
[#8449] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/11/30

まつもと ゆきひろです

[#8463] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/11/30

西@九大です。

[#8474] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/01

まつもと ゆきひろです

[#8476] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/01

西@九大です。

[#8487] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/02

まつもと ゆきひろです

[#8494] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/02

西@九大です。

[#8451] new Hash (Re: [ruby-list:19043]) — Wakou Aoyama <wakou@...>

青山です。

18 messages 1999/11/30

[ruby-dev:8396] Re: Regexp <=>

From: EGUCHI Osamu <eguchi@...>
Date: 1999-11-22 01:18:18 UTC
List: ruby-dev #8396
えぐち@エスアンドイー です。

>>> In message [ruby-dev:8389] Re: Regexp <=>
    On Sat, 20 Nov 1999 06:35:38 +0900, Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp> said:

原> 原です。
原> 
原> In message "[ruby-dev:8383] Re: Regexp <=>"
原>     on 99/11/19, EGUCHI Osamu <eguchi@shizuokanet.ne.jp> writes:
原> |
原> |えぐち@エスアンドイー です。
	...
原> |	/abc/ | /xyz/ => /abc|xyz/
原> |
原> |が出来る Regex#| とかあれば、無理に一個の正規表現リテラルに
原> |表現する必要がなくって、スクリプトを書く時に楽かなと思います。
原> |#正規表現の最適化出来そうだし。。。
原> 
原> 前にも議論があったのですが、正規表現の演算を考える時はまず、それが正規
    ↑[ruby-dev:1011] あたりから始まるスレッドですね。

  Date: Wed, 10 Dec 97 12:00:03 +0900
  From: Kazuhisa Yanagawa <katze@yuba.is.uec.ac.jp>
  Subject: [ruby-dev:1011] Re: ruby 1.1b1 released 
  Message-Id: <199712100308.MAA12530@tan.yuba.is.uec.ac.jp>

原> 表現の文字列への適合の話か純粋に正規表現の内部の話か、区別しておかない
原> といけないですね。例えば /./ を前者でいうと任意の一文字以上の文字列で
原> すが、後者では単に任意の一文字です。演算なら
原> 前者で言えば
原> 
原>   /a/ & /b/ => a も b もマッチする => /a.*b|b.*a/
原>   !/a/      => a にマッチしない    => /^[^a]*$/
原> 
原> であるし、後者で言えば(ちょっといいかげんだけど)
原> 
原>   /a/ & /b/ => a であり b である一文字 => 空 => /[^\x00-\xff]/
原>   !/a/      => a 一文字でない任意の文字列  => /|[^a]|..+/
原> 
原> みたいなものですから、大きな違いです。

確かに、この違いは大きいですね。
これって、両方が必要ってことかも知れませんね。
/a/ と /b/ で考えると、

   /a/ & /b/ => /a.*b|b.*a/

が直観的に妥当に思えますが、/[a-j]/, /[c-z]/

   /[a-j]/ & /[c-z]/ => /[c-j]/

の様に考えてしまいます。
両方の動作が、同様に望まれるとしたら、ビット演算子(|,&,~)と
算術演算子(+,*,-@)で使い分けるなどで共存は出来ると思います。

原> で、/(a+)b\1/ などの参照つきの表現を考えるとそもそもいわゆる正則集合で
原> はないので、色々な演算についても閉じていないでしょう。上のどちらの立場
原> を取っても。正規形も存在しないのでは?

なるほど、素朴な場合はいいけど参照など入り組んだら、厄介ですね。

正規表現同士の比較のための「正規表現の正規化」に限って言えば、

 + [X-Y] などの1文字の列挙はアルファベット順に整列し重複は併合
 + OR は小さい順に整列し重複は併合

の方法で、表現を変形したあと、
構文要素単位で比較する方法を少し考えてみたのですが、

  /a/ == /.*a/
  /a/ == /[a]/

の様なケースを一致とするのか?

  /a/ <=> /./
  /a/ <=> /[a-z]/

の比較の結果はどう定義するのか?(これ決まらないと整列出来ない)

などなど、難題の山でした。

とすると source を単純に比較してる Regex#== が妥当、、なのかな?

	えぐち

In This Thread

Prev Next