[#42817] Ruby1.8.5 がRedHat7.3 でコンパイルできません(openssl) — Yuumi Yoshida <yuumi3@...>
おせわになります、yuumi3 です。
4 messages
2006/09/22
[#42822] 再帰呼び出しの深さを知りたい — "Hideo Konami" <konami@...>
小波です。
9 messages
2006/09/23
[#42835] RubyインストールしたがTKがインストール出来ない — "Kazutomi Ueda" <kazuto@...>
初めまして上田と申します。
16 messages
2006/09/28
[#42837] macosxでRubyインストール 塰 でエラー
— 上間 つよし <mugenkai15@...>
2006/09/28
はじめまして
[#42843] Re: macosxでRubyインストール 塰 でエラー
— kimura wataru <kimuraw@...>
2006/09/29
木村といいます。
[#42844] Re: macosxでRubyインストール 塰 でエラー
— 上間 健 <mugenkai15@...>
2006/09/29
上間です。
[ruby-list:42824] Re: 再帰呼び出しの深さを知りたい
From:
rubikitch <rubikitch@...>
Date:
2006-09-23 16:40:45 UTC
List:
ruby-list #42824
From: "Hideo Konami" <konami@kyoto-wu.ac.jp>
Subject: [ruby-list:42822] 再帰呼び出しの深さを知りたい
Date: Sun, 24 Sep 2006 01:15:46 +0900
るびきちです。
> 次のサンプルのような再帰的な構造(実際に扱いたいのはツリー)で,
> どのレベルまで下がっているのか,つまりパスの深さを得たいので
> す。うまい方法はないものでしょうか。グローバル変数を使わないで,
> 入れ子になった構造の深さが分かるとうれしいのですが
> il>>>
デフォルト引数にレベルを渡すのはどうでしょうか?
とくに関数型言語では「状態」を引数に渡すことが多いです。
class Link
def initialize(level=0)
@son = nil
@level = level
end
def add
if @son then
@son.add
else
@son = Link.new(@level+1)
end
end
def depth
if @son then
@son.depth
else
@level
end
end
end
irbsh[24@01:36](main):034:0>
EvalList(main):035:0> h = Link.new()
#<Link:0xb78a462c @level=0, @son=nil>
EvalList(main):036:0> h.add
#<Link:0xb787bc2c @level=1, @son=nil>
EvalList(main):037:0> h.add
#<Link:0xb786a738 @level=2, @son=nil>
EvalList(main):038:0> h # この段階で深さが2
#<Link:0xb78a462c
@level=0,
@son=#<Link:0xb787bc2c @level=1, @son=#<Link:0xb786a738 @level=2, @son=nil>>>
EvalList(main):039:0> h.depth
2
--
rubikitch
http://www.rubyist.net/~rubikitch/