[#14185] ruby on Linux/m68k — akira yamada / やまだあきら <akira@...>
[#14196] fork() on MacOS — nobu.nakada@...
なかだです。
[#14206] undef_method :method_missing — Kenichi Komiya <kom@...1.accsnet.ne.jp>
なかだです。
なかだです。
金光です。
むらけんです.
金光です。
楠です
金光です。
金光です。
金光です。どもっ。
なかだです。
金光です。どもっ。
金光です。
岩月と申します。
金光です。どもっ。
有馬です。
金光です。
有馬です。
金光です。どもっ。
とみたです。
金光です。
とみたです。
金光です。
まつもと ゆきひろです
金光です。(^_^;
あづみです。
有馬です。
金光です。
有馬です。
金光です。どもっ。
有馬です。
むらけんです.
むらけんさん wrote:
むらけんです.
長沢です。
まつもと ゆきひろです
金光です。どもっ。
有馬です。
金光です。どもどもっ。
むらけんです.
金光です。いちおうフォローだけ
ふなばです。
一応フォローだけ、ほんとにちょっとだけっすよ
岩月と申します。
むらけんです.
楠です
むらけんです.
金光です。FOXとかもあるのかぁ。すげぇなぁ。
まつもと ゆきひろです
金光です。御大、待ってましたっ。
なかだです。
金光です。どもどもっ。
なかだです。
さくです。
まつもと ゆきひろです
金光です。どもっ。
まつもと ゆきひろです
金光です。どもどもっ。
[#14229] [BUG] segv on [str].pack("p") — Koji Arai <JCA02266@...>
新井です。
なかだです。
新井です。
なかだです。
[#14338] setup.rb (Re: Common GUI framework) — Minero Aoki <aamine@...>
あおきです。
[#14382] [BUG] segv on regex matching with long string — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
[#14390] [Patch] pp.rb and debug.rb — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
なひです。書き忘れ。
なかだです。
nobu.nakada@nifty.ne.jpさんの
なひです。
なかだです。
In article <DJEGJLCFNEIMKDNMLFPHMEAHCBAA.nakahiro@sarion.co.jp>,
なひです。
In article <DJEGJLCFNEIMKDNMLFPHEEAICBAA.nakahiro@sarion.co.jp>,
なひです。
まつもと ゆきひろです
In article <997774251.527258.14423.nullmailer@ev.netlab.jp>,
まつもと ゆきひろです
In article <997783083.657819.14685.nullmailer@ev.netlab.jp>,
なひです。
In article <DJEGJLCFNEIMKDNMLFPHEEALCBAA.nakahiro@sarion.co.jp>,
なひです。
In article <DJEGJLCFNEIMKDNMLFPHEEAPCBAA.nakahiro@sarion.co.jp>,
なひです。
In article <DJEGJLCFNEIMKDNMLFPHMEBACBAA.nakahiro@sarion.co.jp>,
あづみです。
なひです。
In article <DJEGJLCFNEIMKDNMLFPHIEBBCBAA.nakahiro@sarion.co.jp>,
うぅむ。ぼーっとしてたら意味もなく Subject を変えてしまった。
In article <20010817205051.UAZHC0A8274C.C78F0C8A@mail.biglobe.ne.jp>,
あづみです。
In article <hvo66bnxe4b.fsf_-_@flux.etl.go.jp>,
古い話題で恐縮ですが…
なかだです。
In article <200109290948.f8T9mbh12942@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
まつもと ゆきひろです
In article <1001945748.240863.24023.nullmailer@ev.netlab.jp>,
なかだです。
In article <200110020334.f923YLb08299@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200110021010.f92AAIb13474@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
まつもと ゆきひろです
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
In article <1002080461.740444.11187.nullmailer@ev.netlab.jp>,
In article <DJEGJLCFNEIMKDNMLFPHCEPJCAAA.nakahiro@sarion.co.jp>,
なひです。
まつもと ゆきひろです
In article <DJEGJLCFNEIMKDNMLFPHCEPJCAAA.nakahiro@sarion.co.jp>,
あおきです。
In article <20010809221751J.aamine@mx.edit.ne.jp>,
[#14406] typo in ruby 1.7 — Koji Arai <JCA02266@...>
新井です。
[#14413] 1.7.1 2001-08-06: if true && /match/ — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#14465] Ruby/Bsearch — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
At Wed, 15 Aug 2001 18:01:50 +0900,
"Akinori MUSHA" <knu@iDaemons.org> wrote:
At Thu, 16 Aug 2001 00:15:05 +0900,
In article <20010816001456V.satoru@namazu.org>,
Tanaka Akira <akr@m17n.org> wrote:
In article <20010816130056C.satoru@namazu.org>,
[#14480] avoid compile warning of tcltklib with VC5 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
[#14505] BUG: ruby 1.6.4 cannot use threads on Sparc (segv) — akira yamada / やまだあきら <akira@...>
[#14530] restore terminal mode even if readline interrupted. — Koji Arai <JCA02266@...>
新井です。
新井です。
新井です。
新井です。
At Wed, 5 Sep 2001 00:19:51 +0900,
まつもと ゆきひろです
[#14552] read in IO#eof? — nobu.nakada@...
なかだです。
[#14575] infinite loop on Dir.glob("*/**/*") — nobu.nakada@...
なかだです。
[#14577] option nodynamic — Daisuke Aoki <dai@...>
青木@横浜です。
[#14595] SEGV at `$0 = "long long string"' — nobu.nakada@...
なかだです。
なかだです。
まつもと ゆきひろです
[ruby-dev:14500] Re: Ruby/Bsearch
Tanaka Akira <akr@m17n.org> wrote:
>という 3つに分割できる場合、
> a < b のときには a..(b-1) を返し、
> a >= b のときには nil を返すわけですが、
>これを a < b か a >= b かにかかわらず a...b を返すようにするというのは
>いかがでしょう?
こんなもんすかね。
% irb -r ./bsearch.rb
>> %w(a b c c c d e f).bsearch_range {|x| x <=> "c"}
=> 2...5
>> %w(a b c d e f).bsearch_range {|x| x <=> "c"}
=> 2...3
>> %w(a b d e f).bsearch_range {|x| x <=> "c"}
=> 2...2
これはなかなかいいかも。
>ついでに bsearch_first や bsearch_last でも常に a や b - 1 を返すとい
>うのは... まぁこれはやりすぎか。
上の bsearch_range の挙動を実現するために
bsearch_first_boundary, bsearch_last_boundary を追加しました。
マニア向けですね。
--
高林 哲 (Takabayashi, Satoru)
http://namazu.org/~satoru/
#
# Ruby/Bsearch - a binary search library for Ruby.
#
# Copyright (C) 2001 Satoru Takabayashi <satoru@namazu.org>
# All rights reserved.
# This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of
# the Ruby's licence.
#
# Example:
#
# % irb -r ./bsearch.rb
# >> %w(a b c c c d e f).bsearch_first {|x| x <=> "c"}
# => 2
# >> %w(a b c c c d e f).bsearch_last {|x| x <=> "c"}
# => 4
# >> %w(a b c e f).bsearch_first {|x| x <=> "c"}
# => 2
# >> %w(a b e f).bsearch_first {|x| x <=> "c"}
# => nil
# >> %w(a b e f).bsearch_last {|x| x <=> "c"}
# => nil
# >> %w(a b e f).bsearch_first_boundary {|x| x <=> "c"}
# => 2
# >> %w(a b e f).bsearch_last_boundary {|x| x <=> "c"}
# => 1
# >> %w(a b c c c d e f).bsearch_range {|x| x <=> "c"}
# => 2...5
# >> %w(a b c d e f).bsearch_range {|x| x <=> "c"}
# => 2...3
# >> %w(a b d e f).bsearch_range {|x| x <=> "c"}
# => 2...2
module Bsearch
VERSION = '1.2'
end
class Array
#
# The binary search algorithm is extracted from Jon Bentley's
# Programming Pearls 2nd ed. p.93
#
#
# Return the lower boundary. (inside)
#
def bsearch_first_boundary (range = 0 ... self.length)
low = range.first() -1
high = if range.exclude_end? then range.last else range.last + 1 end
while low + 1 != high
mid = (low + high) / 2
if yield(self[mid]) < 0
low = mid
else
high = mid
end
end
return high
end
#
# This method searches the FIRST occurrence which satisfies a
# condition given by a block in binary fashion and return the
# index of the first occurrence. Return nil if not found.
#
def bsearch_first (range = 0 ... self.length)
boundary = bsearch_first_boundary(range)
if boundary >= self.length || yield(self[boundary]) != 0
return nil
else
return boundary
end
end
alias bsearch bsearch_first
#
# Return the upper boundary. (inside)
#
def bsearch_last_boundary (range = 0 ... self.length)
low = range.first() -1
high = if range.exclude_end? then range.last else range.last + 1 end
while low + 1 != high
mid = (low + high) / 2
if yield(self[mid]) <= 0
low = mid
else
high = mid
end
end
return low
end
#
# This method searches the LAST occurrence which satisfies a
# condition given by a block in binary fashion and return the
# index of the first occurrence. Return nil if not found.
#
def bsearch_last (range = 0 ... self.length)
boundary = bsearch_last_boundary(range)
if (boundary <= -1 || yield(self[boundary]) != 0)
return nil
else
return boundary
end
end
#
# Return the search result as a Range object.
#
def bsearch_range (range = 0 ... self.length)
first = bsearch_first_boundary(range)
last = bsearch_last_boundary(range)
return first ... last + 1
end
end