[#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:6233] Re: Range (Re: array[last..first] (Re: Subseq of Array))

From: ttate@...
Date: 1999-03-11 14:52:16 UTC
List: ruby-dev #6233
立石です。

Date: Thu, 11 Mar 1999 20:45:42 +0900
From: keiju@rational.com (石塚圭樹 )
keiju> 集合ではなくて順序集合かも.
keiju> どっちが良いか悩みますが, 
keiju>   R[1, 10] => {1,2,...,10}
keiju>   R[10, 1] => {10,9,...,1}
keiju> であれば, 順序集合ですね. 

僕はとりあえずSetでもいいかと思っています。おそらく問題
となるのは(1)現在の値から次の値をどうやってもとめるかと
いうことと、(2)いつ繰返しが終了するのかということだと考
えています。

僕自信の答えは(1)についてはProc(あるいは疑似的なProc)で
実現でき、(2)についてはSetに属さない値を得たときに終了
と言う感じなのです。
よって、整数集合だけでなくrational,float,stringも扱って
しまおうという意図があります。

また、僕のイメージではSetはそれが属するか否かを判断するメソッド
(include?)と集合演算子のみで表現可能です。そうすることであ
えて集合の要素すべてをSetが持つ必要性がなくなり無限の要素を
もつ集合すら表すことが可能です。そうするとWhileも表現可能と
なり、While,Forをより一般的に表現でき、しかも集合と範囲をある程度
関わりをもって表現できるのではないかと考えた次第です。
具体的には以下のような感じです。

class Set
  def initialize(f)   # fはtrue/falseを返すProcオブジェクト
    @mem_p = f
  end

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

  def conj(s)
    @mem_p = proc{|mem| s.include?(mem) and include?(mem)}
  end

  def disj(s)
    @mem_p = proc{|mem| s.include?(mem) or include?(mem)}
  end
end

こういう集合の定義の仕方で

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

class Loop
  # rangeではなくsetであるのがミソ
  def initialize(initval, set, nextf)
    @cur = @init = initval
    @set = set
    ....
  end

  def each
    @cur = @init
    while( @set.include?(@cur) )
    	yield(@cur)
    	@cur = nextf.call(@cur)
    end
  end
end

となって例えば

for i in 0..10
  hogehoge
end

は

r = Range.new(0,10)
l = Loop.new(0,r,proc{|i| i + 1})
l.each{|i|
  hogehoge
}

と表現できます。

keiju>   1..2 + 5..6
keiju> のような, 直和(合併)された集合なども表せると良いですね.

これも可能となります。

;; 長い文章になってしまった、、、、

			Takaaki Tateishi <ttate@jaist.ac.jp>

In This Thread