[#8606] can't build 1.1b9_28 on digital-unix — Go Nakagawa <nakagawa@...>

中川といいます。みなさんはじめまして。

15 messages 1998/07/01
[#8615] Re: can't build 1.1b9_28 on digital-unix — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#8621] Re: can't build 1.1b9_28 on digital-unix — Go Nakagawa <nakagawa@...> 1998/07/02

中川です。

[#8649] [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...>

最近はすっかり ruby にお世話になっております。岩岡です。

33 messages 1998/07/08
[#8708] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/13

まつもと ゆきひろです

[#8710] Re: [BUG] Segmentation fault — WATANABE Hirofumi <watanabe@...> 1998/07/13

わたなべです.

[#8711] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

岩岡です。

[#8712] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

岩岡です。

[#8713] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

自己フォロウを続けてしまいまして申し訳ございません。

[#8715] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8718] Re: [BUG] Segmentation fault — WATANABE Hirofumi <watanabe@...> 1998/07/14

わたなべです.

[#8722] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石@JAISTです。

[#8723] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8725] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8726] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石@JAISTです。

[#8727] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8728] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石です。

[#8770] ruby 1.1c0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 1998/07/17
[#8800] Re: ruby 1.1c0 released — Sinichiro Dezawa <dezawa@...> 1998/07/21

出沢です

[#8801] Re: ruby 1.1c0 released — matz@... (Yukihiro Matsumoto) 1998/07/21

まつもと ゆきひろです

[#8804] Re: ruby 1.1c0 released — TEI meiki <tei@...> 1998/07/21

こんにちは、鄭です。

[#8845] mapping a tagged file onto a class — Takao KAWAMURA <kawamura@...>

各行にフィルード名と値が含まれ、レコードの区切りは空行という、

18 messages 1998/07/23
[#8847] Re: mapping a tagged file onto a class — matz@... (Yukihiro Matsumoto) 1998/07/24

まつもと ゆきひろです

[#8848] Re: mapping a tagged file onto a class — Takao KAWAMURA <kawamura@...> 1998/07/24

In message "[ruby-list:8847] Re: mapping a tagged file onto a class"

[#8892] nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...>

出沢です

33 messages 1998/07/27
[#8893] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/27

まつもと ゆきひろです

[#8895] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/27

まつもと ゆきひろです

[#8903] Re: nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...> 1998/07/27

matz> 良く見るとto_i,to_fともにNumeric.htmlに記述があります.これ

[#8906] Re: nil + 1, or Integer.to_i — keiju@... (石塚圭樹 ) 1998/07/27

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

[#8909] Re: nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...> 1998/07/27

出沢です

[#8920] Re: nil + 1, or Integer.to_i — keiju@... (石塚圭樹 ) 1998/07/28

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

[#8921] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/28

まつもと ゆきひろです

[ruby-list:8640] Equivalence.rb

From: gotoken@... (GOTO Kentaro)
Date: 1998-07-07 03:30:45 UTC
List: ruby-list #8640
ごとけんです

同値類のとっても単純なモジュールを書きました。
需要があれば充実させて再度公開つもりですので、
御覧下さい。
# 早い段階で名前や実装への意見を頂こうと ^^;;

今のところ、引数かブロックで与えた同値関係の商を 
Family オブジェクトとして返す Equivalence#quotient 
しかありません。引数とブロックが省略されると
`===' を同値関係と仮定して、その商を返します。

Family#[] は代表元を与えるとその同値類を Array 
として返します。

Equivalence#quotient は each と、高速化のため
size と include? と delete を使います。
# 立石さん、石塚さんの意見はまだ活かされてません (__;

実例はこんな感じです(thanks `irb --prompt xmp'): 

  require "Equivalence"  # also let Array include Equivalence
      ==>true

  a = [1,2,3,4,5,6,7,8,9,10]  # simple Array
      ==>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

  q0 = a.quotient{|i,j| i%2 == j%2}
      ==>[[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

  q0[1]  # equivalece class for the reprezentative 1
      ==>[1, 3, 5, 7, 9]

  q0[0]  # ditto for 0 (will be nil since !a.include? 0)
      ==>nil

-- gotoken

#
# Equivalence.rb
#

module Equivalence
  def quotient(rel = :===, &cmp)
    __res__ = []
    __dup__ = self.dup
    if iterator?
      each{|i|
	if (__dup__.include? i) && (__dup__.size > 0)
	  __res__ |= [foo = __dup__.find_all{|j| cmp.call(i,j)}]
	  foo.each{|i| __dup__.delete i}
	end
      }
    else
      each{|i|
	if (__dup__.include? i) && (__dup__.size > 0)
	  __res__ |= [foo = __dup__.find_all{|j| j.__send__(rel, i)}]
	  foo.each{|i| __dup__.delete i}
	end
      }
    end
    Family.new __res__
  end

  class Family
    def initialize(ary)
      @body = ary.sort
    end

    def inspect
      @body.inspect
    end

    def to_s
      @body.to_s
    end

    def [] x
      @body.find{|s| s.include? x}
    end

    def method_missing(id, *arg, &blk)
      @body.__send__(id, *arg, &blk)
    end
  end
end

class Array
  include Equivalence
end

# end of Equivalence.rb

In This Thread

Prev Next