[#28402] crypt — Kenji Noda <zaq94465a@...>

野田です

58 messages 2001/03/01
[#28404] Re: crypt — gotoken@... (GOTO Kentaro) 2001/03/01

In message "[ruby-list:28402] crypt"

[#28410] Re: crypt — "Akinori MUSHA" <knu@...> 2001/03/02

At Fri, 2 Mar 2001 04:34:52 +0900,

[#28413] Re: crypt — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/02

newです.

[#28419] Re: crypt — matz@... (Yukihiro Matsumoto) 2001/03/02

まつもと ゆきひろです

[#28421] Re: crypt — gotoken@... (GOTO Kentaro) 2001/03/02

ごとけんです

[#28424] Re: crypt — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/02

newです.

[#28435] ruby 1.6.3? — akira yamada / やまだあきら <akira@...>

24 messages 2001/03/02
[#28440] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/02

まつもと ゆきひろです

[#28572] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/07

[#28621] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/09

[#28624] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/09

まつもと ゆきひろです

[#28821] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/17

[#28823] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/17

まつもと ゆきひろです

[#28829] Re: ruby 1.6.3? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/03/18

もりきゅうです。

[#28831] Re: ruby 1.6.3? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/03/18

もりきゅうです。

[#28454] Ruby 初心者は! — 有瀬 和徳 <crush@...>

Kazunori Aruse

17 messages 2001/03/03

[#28485] ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...>

22 messages 2001/03/04
[#28492] Re: ruby/tk TkEntry#selection_present bug? — Koji Arai <JCA02266@...> 2001/03/04

新井です。

[#28559] Re: ruby/tk TkEntry#selection_present bug? — nagai@... 2001/03/06

永井@知能.九工大です.

[#28562] Re: ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...> 2001/03/06

[#28615] Re: ruby/tk TkEntry#selection_present bug? — nagai@... 2001/03/09

永井@知能.九工大です.

[#28530] テキストファイルを固定文字数で切って、行番号をつけるプログラム — Keisuke Minami <keisuke@...>

こんばんは。三並です。

10 messages 2001/03/05

[#28599] 1.6 のダウンロードマニュアルが圧縮されていない? — Keisuke Minami <keisuke@...>

こんばんは。三並です。

71 messages 2001/03/08
[#28601] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — rubikitch <rubikitch@...> 2001/03/08

From: Keisuke Minami <keisuke@rccn.com>

[#28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — SHIBATA Hiroshi <h-sbt@...9.so-net.ne.jp> 2001/03/08

 SHIBATA Hiroshiです。

[#28603] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-list:28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない?"

[#28606] Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/08

From: Keisuke Minami <keisuke@rccn.com>

[#28617] Re: Ruby 1.6.2 リファレンスマニュアル — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/09

newです.

[#28618] Re: Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/09

From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>

[#28622] Re: Ruby 1.6.2 リファレンスマニュアル — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/09

newです.

[#28644] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/09

青木@横浜です。

[#28672] Re: Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/10

From: Daisuke Aoki <dai@sweetparty.ne.jp>

[#28705] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/12

青木@横浜です。

[#28697] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/12

青木@横浜です。

[#28773] [Q] ChibiXML のサンプルみたいなもの — eda@...

えだです。

14 messages 2001/03/15
[#28782] Re: [Q] ChibiXML のサンプルみたいなもの — TAKAHASHI Masayoshi <maki@...> 2001/03/16

高橋征義です。

[#28852] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹)

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

17 messages 2001/03/19
[#29368] Re: [ruby-ext:01642] Re: o_dbm — akira yamada / やまだあきら <akira@...> 2001/04/21

[#29431] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹) 2001/04/26

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

[#29468] Re: [ruby-ext:01642] Re: o_dbm — akira yamada / やまだあきら <akira@...> 2001/05/01

[#28911] media watch 2001.03.22 — akira yamada / やまだあきら <akira@...>

27 messages 2001/03/22
[#28955] Re: media watch 2001.03.22 — Keisuke Minami <keisuke@...> 2001/03/24

こんばんは。三並です。

[#28974] Re: media watch 2001.03.22 — akira yamada / やまだあきら <akira@...> 2001/03/26

[#28993] Re: media watch 2001.03.22 — Noritsugu Nakamura <nnakamur@...> 2001/03/27

[#29023] 配列に要素を挿入 — Kenji Noda <zaq94465a@...>

野田と申します

15 messages 2001/03/30

[#29037] forwardable-1.0 release — keiju@... (Keiju ISHITSUKA)

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

25 messages 2001/03/30
[#29038] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/03/30

Toshです。

[#29042] Re: forwardable-1.0 release — matz@... (Yukihiro Matsumoto) 2001/03/31

まつもと ゆきひろです

[#29047] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/03/31

Toshです。

[#29057] Re: forwardable-1.0 release — keiju@... (石塚圭樹) 2001/04/02

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

[#29060] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/04/02

Toshです。

[ruby-list:28388] Re: argument to instance_eval block(Re:

From: Shin-ichiro HARA <sinara@...>
Date: 2001-03-01 05:56:03 UTC
List: ruby-list #28388
原です。

>正木です。
>原 信一郎様、御教示有難うございます。
>"Ruby プログラミング入門" は分かりやすくて、愛読しています。

ありがとうございます。

>ただ DelayedList の所は理解するのに苦労しました。

あそこは唐突に難しくなっているので、今「正木−青木」による Sequence
の例を、あの前に紹介すべきだったと後悔しています。改訂の時は入れまし
ょう。

>(ほかには問題の instance_eval)

instance_eval についてはほとんど解説しませんでした。これも手落ち。

>これは私の script で $mod=2 としたものと本質的には同じものだとおもいますが、
>break 行の 100 を m に変えると意図通りには動きません。
>これは致命的な欠陥だと思って採用しなかったわけです。
>Prime の定義のなかでの m は本来 dummy(他の変数名とぶつからなけku齊
>何を使ってもいい)変数の筈なのに、この場合はこの block が mai
>n の
>context で評価されるため dummy になりません。
>こういう場合は他では絶対に使わないような変数名を使いなさいという
>解決策は、Programming の基本に反する(dummy は dummy であku驍ラきだ
>いう意味で)と思うので受け入れられません。

なるほど。(所々文字化けしているので適当に想像して返事します。)
ブロックを関数のオブジェクト化だと思って使うと、ここが気持ち悪いですね。
確かにその通りです。これについてはこの ML でも何度か話題になったと思い
ます。

>第2引数の必要性についてですが、……
>
>p (Prime*Power[2])[m]
>
>とやれば当然 error になります。

これは Prime*Power[2] が p の引数と解釈されているからです。(「入門」
の p.75 にも少し解説しましたが。) p() の戻り値 nil に [] が施されて
います。


さて、ローカル変数をブロックに限定して使うことは instance_eval をも
ってしてもできません。ここはやはり関数を定義してそれを渡すしかないで
しょう。

class Sequence

    include Enumerable

    def initialize( list, &block )
      @list = list
      @proc = block
    end

    def []( n )
      @list[n] ||= @proc.call( self, n )
    end

    def each
      i = 0
      loop do
        yield self[i]; i += 1
      end
    end

    def *(y)
      x=self
      Sequence.new([]){|seq,n| x[n]*y[n]}
    end

end

m = ARGV[0].to_i

def (Power = {}).[]( x )
    super || Power[x] = Sequence.new([1]) {|seq, n| x * seq[n-1] }
end

def self.sieve(seq, n)
   m = seq[n - 1] + 2
   m += 2 while seq.find{|k|
     break if k * k > m
     m % k == 0
   }
   m
end

Prime = Sequence.new([2,3], &method(:sieve))

p((Power[2]*Prime)[m])

ここでは method で Method オブジェクトを生成して、それを渡していますが、
あっさり :sieve をシンボルとしてそのまま渡して send して使うのも軽くて
いいかと思います。

でも sieve というメソッド名の痕跡がトップレベルの self 内で干渉するので、
あおきさんなら、

Prime = Sequence.new([2,3], & Object.new.instance_eval{
                        def sieve(seq, n)
                          m = seq[n - 1] + 2
                          m += 2 while seq.find{|k|
                            break if k * k > m
                            m % k == 0
                          }
                          m
                        end
                        self}.method(:sieve))

とここまでやるかもしれません。(^^;

なお、この一時的な環境のための instance_eval の利用法は

http://www1.u-netsurf.ne.jp/~brew/mine/ja/ruby/iter.html

にあります。因みに、さまざまな動的な手続きの利用法のコレクションが

http://blade.nagaokaut.ac.jp/~sinara/ruby/rubynyumon-2000/programing1.html

にあります。参考になるかも。(ならないかも。)


>無限数列や級数に使うのが主な目的なのでこれが出来ないと使い物になりま
>せん。(Cauchy 列または級数として実数そのものを表す Real class kul
>ていますが実行速度に問題があり実用的なものは未だ出来ません。)

特定の数を表現する Cauchy 列を作ることはできるでしょうが、一般には
例えばある数列が Cauchy 列であるか否かを答える述語の様なものは作れ
ないのではないと思います。

>これは便利だと思ってくれた人が一人もいなかったのがちょっと残念だった
>ので、最後に使用例を少しだけ:

いえ、大変興味深いです。数そのものではなく、数を求めるアルゴリズムを計算
対象とすることで、無限精度の計算ができますね。

数学がからんでくるお話なら是非 ruby-math へお越しください。

In This Thread

Prev Next