[#28402] crypt — Kenji Noda <zaq94465a@...>
野田です
In message "[ruby-list:28402] crypt"
At Fri, 2 Mar 2001 04:34:52 +0900,
newです.
まつもと ゆきひろです
坂下です。
In message <200103030343.MAA03741@smtp1.dti.ne.jp>
坂下です。
新井です。
ごとけんです
newです.
新井です。
新井です。
In message <200103020836.RAA07709@hanare00.math.sci.hokudai.ac.jp>
At Fri, 2 Mar 2001 18:59:39 +0900,
[#28415] class Real — 正木 功 <GEC01122@...>
正木です。
[#28429] Marshal format version — Takahiro Kambe <taca@...>
再び、こんばんは。
石橋秀仁です。こんにちは。
まつもと ゆきひろです
In message <983957685.946561.24647.nullmailer@ev.netlab.zetabits.com>
[#28435] ruby 1.6.3? — akira yamada / やまだあきら <akira@...>
まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
もりきゅうです。
もりきゅうです。
もりきゅうです。
わたなべです.
もりきゅうです。
なかだです。
もりきゅうです。
もりきゅうです。
なかだです。
もりきゅうです。
[#28441] constant in module_eval — Kenichi Komiya <kom@...1.accsnet.ne.jp>
[#28454] Ruby 初心者は! — 有瀬 和徳 <crush@...>
Kazunori Aruse
[#28485] ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...>
新井です。
永井@知能.九工大です.
永井@知能.九工大です.
新井です。
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
新井です。
[#28530] テキストファイルを固定文字数で切って、行番号をつけるプログラム — Keisuke Minami <keisuke@...>
こんばんは。三並です。
新井です。
[#28536] DATA.rewind — URA Takefumi <hage@...>
浦と申します。
[#28565] 海外無料サーバ — 有瀬 和徳 <crush@...>
有瀬です。
[#28577] field sort — Kenji Noda <zaq94465a@...>
野田と申します
[#28599] 1.6 のダウンロードマニュアルが圧縮されていない? — Keisuke Minami <keisuke@...>
こんばんは。三並です。
From: Keisuke Minami <keisuke@rccn.com>
SHIBATA Hiroshiです。
In message "[ruby-list:28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない?"
SHIBATA Hiroshiです。
From: Keisuke Minami <keisuke@rccn.com>
newです.
From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>
newです.
From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>
さくです。
青木@横浜です。
From: Daisuke Aoki <dai@sweetparty.ne.jp>
青木@横浜です。
Toshです。
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
Toshです。
青木@横浜です。
青木@横浜です。
[#28630] nest of Hash.new — Sato Hiroshi <hiroshi@...>
佐藤です.
[#28642] substr — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#28660] ruby termios library — akira yamada / やまだあきら <akira@...>
[#28691] Dir#glob of mswin32 — "たけ(tk)" <ggb03124@...>
mswin32 の Dir#glob はパスを入れても、パスを無視してしまうようです。
[#28715] GC — OHARA Shigeki <os@...>
大原です。
[#28764] Win32_process.create PID — Koga Atsushi <kog@...>
みなさまこんばんわ。
artonです。
[#28773] [Q] ChibiXML のサンプルみたいなもの — eda@...
えだです。
高橋征義です。
まつもと ゆきひろです
うえの@ぶるーすかいです。
[#28780] revenge of shell.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#28789] freeze した文字列の書き換えチェック方法 — nekurai@...
ども、根暗井です ^^)
[#28794] undef singleton method — "K.Kosako" <kosako@...>
特異メソッドを未定義(undef)にするには、
[#28798] RubyUnit で、 initialize メソッドのようなことをしたい — "IKAGAWA, Kauztomo" <k_ikagawa@...>
お世話になります。いかがわと申します。
[#28814] fgets — Kazuhiro NISHIYAMA <zn@...>
C言語のfgetsのようなサイズ制限付きのgetsをしようとすると
[#28852] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#28855] NetBSD BSD/OS curses — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#28862] media watch 2001.03.18 — Noritsugu Nakamura <nnakamur@...>
[#28864] patch glob for MSWin32 ruby-1.6.3 — arton <arton@...>
artonです。
[#28881] 初歩的な質問 — Kenji Noda <zaq94465a@...>
野田です。
[#28887] cygwin で組み込み — "shibata kenji" <shibata@...>
柴田です。
わたなべです。
わたなべ様ありがとうございます。
[#28901] Numeric.new — "たけ(tk)" <ggb03124@...>
Numeric.new があって Fixnum.new がないようです。Fixnum はいいとして、
原です。
たけ(tk)です。
[#28903] lndir.rb でエラー — みかみ まさと <kofukan@...>
みなさん、こんにちは。みかみにございます。
[#28911] media watch 2001.03.22 — akira yamada / やまだあきら <akira@...>
こんばんは。三並です。
前田です。
こんばんは。三並です。
Keisuke Minami さん、こんにちは。Ta-ku-ya II です。
こんばんは。三並です。
Keisuke Minami さん、こんにちは。Ta-ku-ya II です。
[#28919] RD の Reference について — Kenta MURATA <muraken2@...>
むらけんです.
前田です。
[#28954] erb のバグ (ローカル変数が未定義になってしまう) — Keisuke Minami <keisuke@...>
こんにちは。三並です。
[#28963] Re: 9p L 3〜10 P 2 L 2 回目 — Naoto Hiroshima <taisei-in@...>
こんにちは(^_^)
[#29021] [ruby/GD] GD.so not found? — AKJ <ml@...>
はじめて参加させていただきます。
[#29023] 配列に要素を挿入 — Kenji Noda <zaq94465a@...>
野田と申します
From: Kenji Noda <zaq94465a@cat.zero.ad.jp>
箱崎です。
Hiroshi Hakozaki wrote:
新井です。
新井です。
[#29037] forwardable-1.0 release — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
Toshです。
まつもと ゆきひろです
Toshです。
けいじゅ@日本ラショナルソフトウェアです.
Toshです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
わたなべです。
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:28400] Re: 【要望】 EmacsLisp みたいなフック
ごとけんです
In message "[ruby-list:28380] Re: 【要望】 EmacsLisp みたいなフック"
on 01/02/28, kai13@basil.freemail.ne.jp <kai13@basil.freemail.ne.jp> writes:
>実装について、フックと表現しましたが、
>EmacsLispではhookを利用しても、モードなどの作成に挫折したクチですので
>あまり厳密にとらえないでください(^^;。
厳密というか、それをフックと呼ぶのは誤解の素と思いました。
>begin # beginブロック
> #beginブロック(a)
>hook
> #hookブロック
>end
要するに、複数のブロックが渡したいんですよね。たとえば、以下
のような方法があります。
(どこかで聞いたような話ですが)複数のブロックを渡したい場合の
例として、2分木を深さ優先で「なぞる」(traverseする)ときがあ
ります。木をなぞりながらブロックを実行させるには、次の3つの
タイミングがあります:
* あるノードに到達したとき
* そのノードの左の枝の処理が終わったとき
* そのノードの両方の枝の処理が終わったとき
これらを次のように指定できるようにすることが可能です。
BinTree.traverse do |v|
v.before do |node| ... end # 達した
v.middle do |node| ... end # 左が終わった
v.after do |node| ... end # 両方終わった
end
これは traverse が2段階の動作をすることで実現されます。
(1) 指定される「なぞり屋」 v をつくる。その動作の指定は
ブロックで与える
(2) v になぞらせる
ポイントは、ブロックパメータが要素をあらわす必要はないという
ことです。この場合は v がそうです。
# ちなみに、ぼくは以前、中田さんに Benchmark のパッチをもらっ
# たときに初めてこのことを理解しました。
-- Gotoken
# 参考までに、一つの実装例を示します。木の表示です:
class BinTree
BEFORE, MIDDLE, AFTER = :before, :middle, :after
def initialize(data, left = nil, right = nil)
@data, @left, @right = data, left, right
end
def traverse(&block)
traverse0(BinTree::Visitor.new(&block))
end
protected
def traverse0(visitor)
visitor.execute BEFORE, @data
@left.traverse0 visitor if @left
visitor.execute MIDDLE, @data
@right.traverse0 visitor if @right
visitor.execute AFTER, @data
end
class Visitor
def initialize
yield(self)
end
def before(&block)
@before_proc = block
end
def middle(&block)
@middle_proc = block
end
def after(&block)
@after_proc = block
end
def execute(timing, data)
case timing
when BEFORE
@before_proc.call data if @before_proc
when MIDDLE
@middle_proc.call data if @middle_proc
when AFTER
@after_proc.call data if @after_proc
end
end
end
end
# example
def BinTree(data, left = nil, right = nil)
BinTree.new(data, left, right)
end
t = BinTree("red",
BinTree("blue",
BinTree("yellow"),
BinTree("pink")),
BinTree("green"))
indent = " "*8
lv = 0
t.traverse do |v|
v.before do |i|
print ",\n" if lv > 0
print indent*lv, "BinTree(#{i.inspect}"
lv += 1
end
v.after do |i|
print ")"
lv -= 1
print "\n" if lv.zero?
end
end
__END__
# produces:
BinTree("red",
BinTree("blue",
BinTree("yellow"),
BinTree("pink")),
BinTree("green"))