[#27441] Cannot build ruby-1.6.2 (and stable-snapshot) on HP-UX10.20 — MIANAKAWA masaru <earth@...2.sci.ibaraki.ac.jp>

皆川@茨大と言います。

16 messages 2001/02/01

[#27473] Ruby への希望 (2): シンボリックリンクの扱いの強化 — Takahiro Kambe <taca@...>

その2で、シンボリックリンクの扱いについてです。

9 messages 2001/02/03

[#27486] Open Source Festival — Masaki Suketa <CQN02273@...>

助田です。宣伝です。

18 messages 2001/02/04

[#27546] net/smtp,pop,http 1.2 pre2 — Minero Aoki <aamine@...>

あおきです。

35 messages 2001/02/06
[#27548] Re: net/smtp,pop,http 1.2 pre2 — Tanaka Akira <akr@...17n.org> 2001/02/06

In article <20010206202204E.aamine@mail.u-netsurf.ne.jp>,

[#27551] Re: net/smtp,pop,http 1.2 pre2 — Minero Aoki <aamine@...> 2001/02/06

あおきです。

[#27574] Re: net/smtp,pop,http 1.2 pre2 — Tanaka Akira <akr@...17n.org> 2001/02/07

In article <20010206221028C.aamine@mail.u-netsurf.ne.jp>,

[#27580] Re: net/smtp,pop,http 1.2 pre2 — Minero Aoki <aamine@...> 2001/02/07

あおきです。

[#27648] Re: net/smtp,pop,http 1.2 pre2 — OHSHIMA Ryunosuke <ryu@...> 2001/02/09

大島です。

[#27561] ParseDate.to_time — rubikitch <rubikitch@...>

るびきちです。

100 messages 2001/02/07
[#27657] Re: ParseDate.to_time — "Shin'ya Adzumi" <adzumi@...> 2001/02/09

あづみです。

[#27802] Re: ParseDate.to_time — Tadayoshi Funaba <tadf@...> 2001/02/13

ふなばです。

[#27831] Re: ParseDate.to_time — "Shin'ya Adzumi" <adzumi@...> 2001/02/14

あづみです。

[#27837] Re: ParseDate.to_time — Tadayoshi Funaba <tadf@...> 2001/02/14

ふなばです。

[#27848] Re: ParseDate.to_time — " たけ (tk)" <ggb03124@...> 2001/02/14

たけ(tk)です。

[#27854] Re: ParseDate.to_time — matz@... (Yukihiro Matsumoto) 2001/02/15

まつもと ゆきひろです

[#27858] Re: ParseDate.to_time — Takahiro Kambe <taca@...> 2001/02/15

In message <982195219.790355.16311.nullmailer@ev.netlab.zetabits.com>

[#27889] Re: ParseDate.to_time — Tadayoshi Funaba <tadf@...> 2001/02/15

ふなばです。

[#27890] Re: ParseDate.to_time — Takahiro Kambe <taca@...> 2001/02/15

In message <20010216003018P.tadf@kt.rim.or.jp>

[#27893] Re: ParseDate.to_time — " たけ (tk)" <ggb03124@...> 2001/02/15

たけ(tk)です。

[#27901] Re: ParseDate.to_time — matz@... (Yukihiro Matsumoto) 2001/02/15

まつもと ゆきひろです

[#27962] Re: ParseDate.to_time — " たけ (tk)" <ggb03124@...> 2001/02/17

たけ(tk)です。

[#27975] Re: ParseDate.to_time — matz@... (Yukihiro Matsumoto) 2001/02/17

まつもと ゆきひろです

[#27994] Re: ParseDate.to_time — " たけ (tk)" <ggb03124@...> 2001/02/17

たけ(tk)です。

[#28010] Re: ParseDate.to_time — Tadayoshi Funaba <tadf@...> 2001/02/18

ふなばです。

[#28014] Re: ParseDate.to_time — " たけ (tk)" <ggb03124@...> 2001/02/18

たけ(tk)です。

[#28020] Re: ParseDate.to_time — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/02/18

もりきゅうです。

[#28031] Re: ParseDate.to_time — Takahiro Kambe <taca@...> 2001/02/18

In message <200102180841.AA00612@euler.nifty.ne.jp>

[#28036] Re: ParseDate.to_time — とみたまさひろ <tommy@...> 2001/02/18

とみたです。

[#27565] importenv.rb — rubikitch <rubikitch@...>

るびきちです。

19 messages 2001/02/07
[#27573] Re: importenv.rb — "K.Kosako" <kosako@...> 2001/02/07

rubikitchさんの<20010207124131-15878M.takashi@localhost>から

[#27576] Re: importenv.rb — "Nobuyoshi.Nakada" <nobu.nakada@...> 2001/02/07

なかだです。

[#27588] interbase6 — Naoto Hiroshima <taisei-in@...>

こんにちは。

14 messages 2001/02/07

[#27631] 文字数 — Kenji Noda <zaq94465a@...>

野田と申します

23 messages 2001/02/08
[#27632] Re: 文字数 — rubikitch <rubikitch@...> 2001/02/08

From: Kenji Noda <zaq94465a@cat.zero.ad.jp>

[#27644] Re: 文字数 — Kenichi Komiya <kom@...1.accsnet.ne.jp> 2001/02/08

[#27674] 配列をハッシュへ — Naoto Hiroshima <taisei-in@...>

こんにちは。

32 messages 2001/02/10
[#27852] Re: 配列をハッシュへ — Shin-ichiro HARA <sinara@...> 2001/02/15

原です。

[#27853] Re: 配列をハッシュへ — Naoto Hiroshima <taisei-in@...> 2001/02/15

こんにちは。

[#27856] Re: 配列をハッシュへ — matz@... (Yukihiro Matsumoto) 2001/02/15

まつもと ゆきひろです

[#27857] Re: 配列をハッシュへ — Naoto Hiroshima <taisei-in@...> 2001/02/15

こんにちは。 Ruby をありがとうございます。

[#27860] Re: 配列をハッシュへ — "Nobuyoshi.Nakada" <nobu.nakada@...> 2001/02/15

なかだです。

[#27724] [Q] about RWiki and ref.manual — Minero Aoki <aamine@...>

あおきです。

19 messages 2001/02/11
[#27726] Re: [Q] about RWiki and ref.manual — Koji Arai <JCA02266@...> 2001/02/11

新井です。

[#27727] Re: [Q] about RWiki and ref.manual — Minero Aoki <aamine@...> 2001/02/11

あおきです。

[#27836] Ruby/Gtk compile error — tsone@... (曽根俊彦)

今晩は、曽根俊彦です。

21 messages 2001/02/14
[#27839] Re: Ruby/Gtk compile error — IWAOKA Masahiro <iwaoka@...> 2001/02/14

いわおかです。気づいたとこだけ。

[#27850] Re: Ruby/Gtk compile error — tsone@... (曽根俊彦) 2001/02/14

IWAOKA Masahiro <iwaoka@tuat.jac-net.com> writes:

[#27868] Re: Ruby/Gtk compile error — Hiroshi IGARASHI <igarashi@...> 2001/02/15

いがらしです。

[#27859] 【質問】“ Ruby プログラミング入門”の内容について (From 超初心者) — Nobuo hirata <psy-1114@...2.so-net.ne.jp>

はじめまして、“うえの”という超初心者です、よろしくお願い致します。

21 messages 2001/02/15
[#27863] Re: 【質問】“ Ruby プログラミング入門”の内容について (From 超初心者) — WATANABE Hirofumi <eban@...> 2001/02/15

わたなべです。

[#27886] Re: 【質問】“ Ruby プログラミング入門”の内容について (From 超初心者) — Nobuo hirata <psy-1114@...2.so-net.ne.jp> 2001/02/15

わたなべさん、レス有り難う御座います。

[#27894] Re: 【質問】“ Ruby プログラミング入門”の内容について (From 超初心者 ) — Inoue Shinobu <VEF00372@...> 2001/02/15

[#27980] Dir[pattern] — Kazuhiro NISHIYAMA <zn@...>

2バイト目に「\」を含むファイル名がDir['*']で出てきません。

18 messages 2001/02/17
[#27984] Re: Dir[pattern] — "U.Nakamura" <usa@...> 2001/02/17

こんにちは、なかむら(う)です。

[#27988] Re: Dir[pattern] — "U.Nakamura" <usa@...> 2001/02/17

こんにちは、なかむら(う)です。

[#28071] HTML::Template みたいなもの — Hirosato Matsuura <matswra@...>

松浦@コムデザイン といいます。

21 messages 2001/02/19
[#28093] Re: HTML::Template みたいなもの — Hirosato Matsuura <matswra@...> 2001/02/20

松浦@コムデザインです

[#28078] 正規表現で <!-- コメント --> の認識 — kai13@...

Tree型htmlパーザーを開発していてるのですが、

14 messages 2001/02/20

[#28138] handling of #! — Takahiro Kambe <taca@...>

こんばんは。

25 messages 2001/02/21
[#28139] Re: handling of #! — nobu.nakada@... 2001/02/21

なかだです。

[#28142] Re: handling of #! — Takahiro Kambe <taca@...> 2001/02/22

In message <200102211914.EAA01450@sharui.nakada.kanuma.tochigi.jp>

[#28143] Re: handling of #! — "Nobuyoshi.Nakada" <nobu.nakada@...> 2001/02/22

なかだです。

[#28145] Re: handling of #! — Takahiro Kambe <taca@...> 2001/02/22

In message <200102220405.NAA19549@m2.gw.fujitsu.co.jp>

[#28146] Re: handling of #! — "Nobuyoshi.Nakada" <nobu.nakada@...> 2001/02/22

なかだです。

[#28147] Re: handling of #! — Takahiro Kambe <taca@...> 2001/02/22

In message <200102220912.SAA27681@m5.gw.fujitsu.co.jp>

[#28154] Re: handling of #! — nobu.nakada@... 2001/02/22

なかだです。

[#28219] Cast — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2001/02/24

[#28231] CGI でのロック (was: File.rename の例外) — DEQ <deq@...>

DEQです。

12 messages 2001/02/24

[#28258] txt文に変更したい — Inoue Shinobu <VEF00372@...>

こんなこと、RUBYでできないもんでしょうか。

17 messages 2001/02/25

[#28281] kidou opushon wo dokoni? — Inoue Shinobu <VEF00372@...>

助田さんの作ってくださった

41 messages 2001/02/25
[#28444] Re: kidou opushon wo dokoni? — Masaki Suketa <masaki.suketa@...> 2001/03/03

助田です。

[#28504] Re: kidou opushon wo dokoni? — Inoue Shinobu <VEF00372@...> 2001/03/05

[#28524] Re: kidou opushon wo dokoni? — " たけ (tk)" <ggb03124@...> 2001/03/05

たけ(tk)です。

[#28548] Re: 日本語表示にこだわりが・・・ — Inoue Shinobu <VEF00372@...> 2001/03/06

newさん、みなさんこんにちは。申し訳ありませんがもう少しおつきあいしてくだ

[#28333] Re: argument to instance_eval block(Re: — 正木 功 <GEC01122@...>

正木です。

29 messages 2001/02/27
[#28334] Re: argument to instance_eval block(Re: — "Nobuyoshi.Nakada" <nobu.nakada@...> 2001/02/27

なかだです。

[#28336] Re: argument to instance_eval block(Re: — Minero Aoki <aamine@...> 2001/02/27

あおきです。

[#28338] Re: argument to instance_eval block(Re: — "K.Kosako" <kosako@...> 2001/02/27

Minero Aokiさんの

[#28341] Re: argument to instance_eval block(Re: — keiju@... (石塚圭樹) 2001/02/27

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

[#28353] Re: argument to instance_eval block — Minero Aoki <aamine@...> 2001/02/27

あおきです。

[#28368] 【要望】 EmacsLisp みたいなフック — kai13@...

ファイルリストなどをフィルタリングする時に然るべきタイミングで

16 messages 2001/02/28
[#28369] Re: 【要望】 EmacsLisp みたいなフック — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[#28370] Re: 【要望】 EmacsLisp みたいなフック — kai13@... 2001/02/28

On Wed, 28 Feb 2001 15:57:38 +0900

[ruby-list:28155] index printer for nested array (Re: )

From: gotoken@... (GOTO Kentaro)
Date: 2001-02-22 12:52:37 UTC
List: ruby-list #28155
ごとけんです

In message "[ruby-list:28150]"
    on 01/02/22, kai13@basil.freemail.ne.jp <kai13@basil.freemail.ne.jp> writes:
>開発中のTree型のHTMLパーザで配列のTreeの巡回を考えているのですが、
>どうも、再帰だと変数のスコープが C のようでない気がします。
>
>一部だけ抜き出してサンプルプログラムを作ってみました。
>
>def tree_walk(ptr, max = 0, depth = [])
>  return if depth.size == max
>  depth << 0
>    print '-' * 10,depth.inspect,'-'*10,"\n"
>  stack = []
>  ptr.each_with_index {|i,idx|
>    #print "depth = #{depth.inspect}\n"
>    depth[-1] = idx
>    if i.type == Array
>      next if i.empty?
>      tree_walk(i,max,depth)
>    else
>      print "#{i.inspect}:[",depth.join(']['),"]\n"
>      #puts "#{depth.inspect}:#{ptr.type}"
>	#p i.type
>    end
>  }
>end

これは「ネストした配列の添字と要素を出力するもの」のはずなの
ですね。そう仮定してはなしを進めます。

このコードのどこがおかしいかというと、一つの答えは、「再帰呼
出しを抜けた後の処理が無いこと」です。

再帰呼出しを抜ける条件としてはおそらく

 (1) 深さが max 以上になった
 (2) その深さのすべての要素を出力し終わった

の2つを意図されているのでしょう。ところで depth は深さを表し
ていませんね。正確にいえばこのコードで depth というのは「今
のレベルが先頭にある配列」です。なんでこんな面倒なことをする
のか分かりませんが、部分を抜きだしたのでこうなったのかも知れ
ません。

で、これが質問の中心かも知れませんが、上のレベルに戻るときに 
depth から一つ要素取り除いて深さを戻してやる必要があります。

Rubyでは常に値渡しであって、参照渡しではありません。というか 
Ruby にはCで言う参照やポインタはありません。つまり仮引数 
depth に渡されるのは呼出し側での depth という配列そのもので
す。だから再帰から抜けたときには再帰呼出し内で受けた影響はそ
のまま残っています。

例でこのことを示せば次のようになります。

  def foo(ary)
    ary.push "hoge"
  end

  a = []
  foo(a)
  p a  #=> ["hoge"]

どうも渡し方のモデルを誤解されてるようです。変数のスコープの
問題ではありません。

さて、もとのコードを仮定した意図通りに書き換えるとしたら次の
ようになるでしょう:

  def tree_walk(ptr, max = 0, depth = [])
    return if depth.length == max
    depth.push 0
    # print '-' * 10,depth.inspect,'-'*10,"\n"
    ptr.each_with_index {|i,idx|
      depth[-1] = idx
      if i.type == Array
	next if i.empty?
	tree_walk(i,max,depth)
      else
	print "#{i.inspect}:[",depth.join(']['),"]\n"
      end
    }
    depth.pop
  end

  ary = [0,1,[2,[3,4,5,[6,7],8,],9]]
  tree_walk(ary,3)
  puts "######### test ###########"
  print "ary = "
  p ary
  print "ary[2][1][2] == "
  p ary[2][1][2]
  print "ary[2][2] == "
  p ary[2][2]

実行結果は次のとおりです:

  0:[0]
  1:[1]
  2:[2][0]
  3:[2][1][0]
  4:[2][1][1]
  5:[2][1][2]
  8:[2][1][4]
  9:[2][2]
  ######### test ###########
  ary = [0, 1, [2, [3, 4, 5, [6, 7], 8], 9]]
  ary[2][1][2] == 5
  ary[2][2] == 9

-- Gotoken

In This Thread