[#4004] super.super — Kikutani Makoto <kikutani@...>
きくたにです。
[#4013] regexp question — Kikutani Makoto <kikutani@...>
きくたにです。
まつもと ゆきひろです
[#4029] ruby-mode.el ... _end problem — Kikutani Makoto <kikutani@...>
ruby-mode.el ですが、
まつもと ゆきひろです
Tue, Sep 02, 1997 at 10:05:20AM +0900 において
まつもと ゆきひろです
Tue, Sep 02, 1997 at 10:30:01AM +0900 において
[#4047] make install prefix=hoge — Kikutani Makoto <kikutani@...>
きくたにです。
[#4053] How to 'break' inside case — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#4060] ruby-tk on Windows — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
>まつもと ゆきひろです
助田です
助田です
助田です
原です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
まつもと ゆきひろです
酒本です。
わたなべです.
助田です。
In message "[ruby-list:4169] Re: ruby-tk on Windows"
原です。
わたなべです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
[#4066] ~ (tilde) — Kikutani Makoto <kikutani@...>
きくたにです。
[#4076] which icon is the best? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4083] ruby 1.0-970903 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
小澤@日立 です。
[#4096] [Q] 文字列処理 — Yasunari Momoi <conan@...>
ももちゃん@あるもにこすです.
[#4109] can not install 1.0-970903 — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
うさぎです。
大庭@鉄工所です.
[#4126] How to get value (ruby/tk) — Noritsugu Nakamura <nnakamur@...>
あ伊藤です.
まつもと ゆきひろです
[#4145] byte code compiler ? — Kikutani Makoto <kikutani@...>
rubyのインタープリタって、いったん中間コードに変換してから
[#4151] "autoload": NameError ... — taizo@... (Yamamoto Taizou)
[#4164] configure option --bindir= — Noritsugu Nakamura <nnakamur@...>
[#4201] Mini ML Program — Yasunari Momoi <conan@...>
ももちゃん@あるもにこすです.
きくたにです。
まつもと ゆきひろです
[#4211] subscribe — abe@...
阿部雅之と申します。
[#4236] tk sample die — Kikutani Makoto <kikutani@...>
あれ、sampleのtk拡張がみんな動かなくなってしまった。why?
[#4245] ruby 1.0-970909 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4258] class.new { ... } — Kikutani Makoto <kikutani@...>
きくたに@Tk拡張見習い中です。
[#4272] [Q] tk ext... — Kikutani Makoto <kikutani@...>
きくたにです。
[#4278] Is there any english documentation ? [FreeBSD ports] — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
うさぎです。
まつもと ゆきひろです
うさぎです。
[#4287] Re: Sample Program ( mbox to INBOX ) — "nagano" <nagano@...>
長野です。
[#4309] Re: ruby small bugs — 渡辺博文 <VYV01212@...>
わたなべです.
[#4313] mail address class — akira yamada / やまだあきら <akira@...>
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
前田です。
前田です。
前田です。
前田です。
出沢@富士フイルムです
わたなべです.
[#4322] ftplib.rb with Win — Masaki Suketa <suke@...>
cygwin32 版 ruby を使って ftplib.rbの
[#4324] ruby seminar — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
うさぎ@勤務地は西田幾太郎生誕の地です。
前田です。
うさぎです。
前田です。
うさぎです。
前田です。
小澤さくです.
[#4329] ruby mailing list sanka kibo. — ma2sim@...
[#4357] nif2news.rb — Kikutani Makoto <kikutani@...>
きくたにです。
前田です。
きくたにです。
まつもと ゆきひろです
[#4364] RE: Re: Mistake in turorial ??? — "EGUCHI Osamu" <eguchi@...>
> 助田です
[#4366] socket — Kikutani Makoto <kikutani@...>
きくたにです。
まつもと ゆきひろです
小澤@日立 です。
わたなべです.
わたなべです.
[#4448] ruby 1.0-970919 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4449] Bug?? (ruby-1.0-970911) — Yuji Shigehiro <sigehiro@...>
ruby-1.0-970701 から, ruby-1.0-970911 にバージョンアップしたところ,
まつもと ゆきひろです
重弘です.
きくたにです。
[#4468] Re: ruby 1.0-970919 released — 渡辺博文 <VYV01212@...>
わたなべです.
[#4474] ruby1.0(970919) for mswin32 — Masaki Suketa <suke@...>
助田です。ちょっと長いです。
[#4498] Re: tcltk library — 渡辺博文 <VYV01212@...>
わたなべです.
[#4510] python doc — Kikutani Makoto <kikutani@...>
ここで聞くべきことじゃないのですが、きっと知ってる人がいるだろう
きくたにです。
きくたにさん>
まつもと ゆきひろです
まつもと ゆきひろさん>
助田です
まだ python はかじりはじめたばかりですが、
まつもと ゆきひろです
Wed, Sep 24, 1997 at 02:31:39PM +0900 において
まつもと ゆきひろです
[#4556] install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...>
うさぎです。
うさぎです。
うさぎです。
まつもと ゆきひろです
まつもと ゆきひろです
うさぎです。
うさぎです。
[#4564] Re: Object#freeze — "EGUCHI Osamu" <eguchi@...>
えぐち です。
前田です。
まつもと ゆきひろです
[#4586] new members — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4617] array --> float of C (ruby module) — Noritsugu Nakamura <nnakamur@...>
[#4701] XeasyGraphic module — Noritsugu Nakamura <nnakamur@...>
[#4702] warning: global variable `$BODY' not initialized — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#4705] fact.rb (1.0-970919, nextstep) — HYOUDOU Kouichi <hyoudo@...>
兵藤です
[#4738] ruby 1.0-970930 install failed — Yoshiyuki Kusano <kusano@...>
草野@構造計画です.
草野@構造計画です.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
助田です。
[#4741] rbc.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:4234] Re: prime generator sample program
豊福@パパイヤです。
けいじゅさん
>>チェーン状につながったフィルタオブジェクト
>>を通すと合成数はふるい落とされていくというプログ
>>ラムです。
>
> この題材は, 昔, 本の中で書いた例題(Smalltalkで記述)と基本的に同じもの
> だなと懐かしくなりました(^^;;;
オブジェクト指向のサンプルプログラムの定番のよう
ですね。KL1版と C++版を見たことがあります。今回のは
C++版の ruby への焼き直しです。
> # 実は, mathn.rbのために, 同じものをruby版も作ったんですが, あまりにも
> # 遅いので, mathn.rb では別のアルゴリズムを採用してしまいました(^^;;;
メソッド呼び出しに時間かかるんですかね。
> # 別にオブジェクト指向していませんが, アルゴリズムが面白いと思うので興
> # 味があったら覗いてみて下さい.
はい読みました。mathn.rb の class Prime を見て
今回のプログラムを思い出した次第です。
math.rb についてはいくつか質問がありますがそれは
また別メールにて。
>> 「こう書いた方が ruby らしい」など教えて下さい。
>
> そうですね. まず, Enumeratableをincludeすることを考えると面白いと思い
> ます(Sieve#eachを実装する)そうすると,
>
> primes = Sieve.new(c)
> for n in primes
> break if n > max
> print n, "\n"
> end
>
> などの使い方ができるようになります.
>
> # ただ, loopは無限に続くので途中で確実に止まることが保証されていないと...
>
> 数えあげられるもの(Stream系)に関しては, Enumeratableをincludeできるか
> まず考えるとよいでしょう.
Enumerable を include して each を実装すると
自動的に collect とか find も使えるようになるの
ですね。
なるほど勉強になりました。こういうことがサンプル
プログラムとともに書いてあるドキュメントがあると
いいですね。
> # ただ, loopは無限に続くので途中で確実に止まることが保証されていないと...
この後は何が続くのでしょう。
・「無限ループになったらあきらめろ」
・「だから確実に止まるように気をつけろ」
・「だからこれこれの技を使え」
アドバイスを基にしてプログラムを書き直しました。
どうでしょう。
class Stream
include Enumerable
def each
loop do
yield out
end
end
end
class Counter < Stream
def initialize(v)
@value = v
end
def out
@value += 1
return @value - 1
end
end
class Filter < Stream
def initialize(src, f)
@source = src
@factor = f
end
def out
for n in @source
if n % @factor != 0
return n
end
end
end
end
class Sieve < Stream
def initialize
@source = Counter.new(2)
end
def out
n = @source.out()
@source = Filter.new(@source, n)
return n
end
end
if ! max = ARGV.shift; max = 100; end
max = max.to_i
primes = Sieve.new
for n in primes
if n > max
break
end
print n, "\n"
end
---
豊福@パパイヤ
unbound@papaya.juice.or.jp
toyofuku@juice.or.jp