[#5809] mod_ruby-0.0.7 — Shugo Maeda <shugo@...>

前田です。

63 messages 1999/03/01
[#5845] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/01

前田です。

[#5860] Re: mod_ruby-0.0.7 — moochan <moochan@...> 1999/03/02

moochan です.

[#5892] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/02

前田です。

[#5855] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/01

前田です。

[#5919] Re: mod_ruby-0.0.7 — Shugo Maeda <shugo@...> 1999/03/03

前田です。

[#5895] [REQ] 中置の def — EGUCHI Osamu <eguchi@...>

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

18 messages 1999/03/02
[#5907] Re: [REQ] 中置の def — EGUCHI Osamu <eguchi@...> 1999/03/03

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

[#5965] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 )

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

28 messages 1999/03/04
[#5981] Re: Precision in Mathematica (Re: Bigfloat) — gotoken@... (GOTO Kentaro) 1999/03/04

ごとけん

[#6053] Re: Precision in Mathematica (Re: Bigfloat) — matz@... (Yukihiro Matsumoto) 1999/03/06

まつもと ゆきひろです

[#6150] Re: Precision in Mathematica (Re: Bigfloat) — matz@... (Yukihiro Matsumoto) 1999/03/09

まつもと ゆきひろです

[#6159] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/09

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

[#6197] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/10

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

[#6203] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/10

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

[#6224] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/11

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

[#6238] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/11

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

[#6302] Re: Precision in Mathematica (Re: Bigfloat) — keiju@... (石塚圭樹 ) 1999/03/12

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

[#6304] Re: Precision in Mathematica (Re: Bigfloat) — EGUCHI Osamu <eguchi@...> 1999/03/12

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

[#5970] [REQ] variable of regex — keiju@... (Keiju ISHITSUKA)

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

43 messages 1999/03/04

[#6090] Thread#kill — Shugo Maeda <shugo@...>

前田です。

24 messages 1999/03/08

[#6328] Re: Ruby 1.3.1-990315 — WATANABE Hirofumi <watanabe@...>

わたなべです.

41 messages 1999/03/15
[#6329] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/15

まつもと ゆきひろです

[#6331] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/15

青山です。

[#6338] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6347] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6348] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6350] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6353] Re: Ruby 1.3.1-990315 — matz@... (Yukihiro Matsumoto) 1999/03/16

まつもと ゆきひろです

[#6354] Re: Ruby 1.3.1-990315 — Wakou Aoyama <wakou@...> 1999/03/16

青山です。

[#6434] Time#+ — Koji Arai <JCA02266@...>

新井です。

19 messages 1999/03/22
[#6442] Re: Time#+ — matz@... (Yukihiro Matsumoto) 1999/03/22

まつもと ゆきひろです

[ruby-dev:6366] Re: Range (Re: array[last..first] (Re: Subseq of Array))

From: keiju@... (石塚圭樹 )
Date: 1999-03-16 14:54:49 UTC
List: ruby-dev #6366
けいじゅ@日本ラショナルソフトウェアです.

メイルが分散すると何なので, まとめちゃいました.

In [ruby-dev :6308 ] the message: "[ruby-dev:6308] Re: Range (Re:
array[last..first] (Re: Subseq of Array)) ", on Mar/13 00:10(JST)
Wakou Aoyama writes:

>青山です。

>> あまりパワーをかけるとあれなんで(^^;;;
>ですね。ゆっくりいきましょう。

とかいってあまりゆっくりやっていると, 忘れてしまう(^^;;

>> なろほど. Rangeのことはおいておいて, それとは独立に考察するってことで
>> すね. その方が良いかもですね. 
>> 
>> そのあと, まとまったところでRangeと統合できれば統合すれば良いし...
>ええ、発展して集合クラス等に分割されていってもいいですしね。

そんな感じですね.

In [ruby-dev :6307 ] the message: "[ruby-dev:6307] Re: Range (Re:
array[last..first] (Re: Subseq of Array)) ", on Mar/13 00:10(JST)
Wakou Aoyama writes:

>青山です。

>> 順序のあるものとないものがあるんですね.
>
>はい。とりあえず、純粋に範囲だけで順序も要素も無いものと、順序や要素を
>含めたものの2つです。このうち後者に関しては強力な要素を扱う良い手立て
>がまとまれば集合クラスへと向かう可能性もあるのかもしれません。

そうか. 青山さんのRange2のイメージはあくまでも端点を2点だけもつ範囲っ
てことなんですね. もともとの, Rangeに近い(多分サブセット)になっている
んですね.

私は, 数学でいうところの

  a..b == [a, b]

ってイメージです. ですので, あくまで実数の集合ですね. そういった意味で
立石さんのモデルと近いです.

青山さんはどのくらい ``純粋に範囲だけで順序も要素も無い'' にこだわれて
ますか?

>>   Set                     -- 立石さんのもの
>>     Range2
>>   OrderedSet
>>     Range3
>>     CompositeOrderedSet
>> 
>> って感じですか... OrderedSetは立石さんのSetとLoopを組み合わせた実体と
>> も考えられます. 
>
>そうですね。Set, Loop もうまく分離できればこれもまた新たな展開がありそ
>うです。

ですね. 私の案だと2種類の集合が出てきて冗長って感じなので, モデルとし
てはこっちの方が奇麗だと思います.

In [ruby-dev :6310 ] the message: "[ruby-dev:6310] Re: Range (Re:
array[last..first] (Re: Subseq of Array)) ", on Mar/13 00:42(JST)
ttate@jaist.ac.jp writes:

>立石です。

>keiju> Setというと同じ要素を2度と返さないということが要求されますが, それって
>keiju> 結構強うい条件になりませんか?
>
>すいません、ここの意味する所がよく分かりません。m(_ _)m

Setというからには, 
  
  a_set = {1, 2, 3, 2, 1}

のようなものは許されないですよね. という意味でした.

立石さんの案はそういう問題はないですね. Setは条件だけもっていますので.

>keiju> 集合を表すSetと要素の取り出しを行なうLoopが分離しているところが, よい
>keiju> 感じですね.
>
>ええ、その2つは分離してもいいんじゃないかと思ってさ
>らに整数以外も扱いたいなぁとかおもったらこういうもの
>になったのでした。

ですね. このLoopって用語は何か深い意味があるのですか? わたしにはあまり
ぱっとこないもので...

>keiju> ただ, この場合はいいんですが...
>keiju> >keiju>   1..2 + 5..6
>keiju> >keiju> のような, 直和(合併)された集合なども表せると良いですね.
>keiju> 
>keiju> 新しいSetはできますが, Loopの定義が...
>keiju>   1,2,5,6
>keiju> と返してくれるLoopを定義するには, Setがどのようにできているか知らない
>keiju> と駄目ですね...
>
>あ、そうですね。
>重ね重ね考えが甘かったです。
>柔軟なループをオブジェクトで表すのは難しいですね。

ですね... 

ということでこんなの考えました:

   Set                     -- 立石さんのもの
     Range2
   EnumerableSet
     SelectedESet
     JoinedESet

Setは立石さんの案そのままです. selectionメソッドでSelectedESetを生成で
きます.

EnumerableSetはOrderedSetなんですが, 数えあげられるのでEnumerableSetと
しました.

立石さんのLoopはeachを持っているので, ある意味(順序)集合だろうというこ
とで, SelectedESetになっています. さらに, 直和を実現するクラスとして
JoinedESetがあります.

Range3は直接は存在しません.

  range3 = range2.selection(range2.min, proc{|x| x + skip})

でrange3相当のSelectedESetが生成できます.


-- ここから
class Set
  def initialize(cond = proc)   # fはtrue/falseを返すProcオブジェクト
    @cond = f
  end

  def include?(mem)
    @cond.call(mem)
  end

  def selection(first, succ = proc)
    SelectedESet.new(first, self, succ)
  end

end

class Range2 < Set
  def initialize(min,max)
    super(proc{|i| min <= i && i <= max})
  end

  def selection(first = nil, succ = nil)
    first = min unless first
    unless succ
      if proc?
	succ = proc
      else
	succ = proc{|x| x + 1}
      end
    end
    super(first, succ)
  end

  # Range互換each
  def each(&block)
    self.selection.each(&block)
  end
end

class EnumerableSet
  include Enumerable

  def +(other)
    JoinedESet.new(self, other)
  end
end

class SelectedESet < EnumerableSet
  def initialize(first, set, succ)
    @first =  first
    @set = set
    @succ = succ
  end

  def each
    cur = @first
    while cur = succ.call(cur)
      yield(cur)
    end
  end
end

class JoinedESet < EnumerableSet
  def initialize(*ary)
    @selections = ary
  end

  def each(&block)
    for sel in @selections
      sel.each(&block)
    end
  end
end
  




__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread