[#14497] Re: Gtk::Menu の使い方に関する質問 — Hiroshi Igarashi <igarashi@...>
いがらしです。
[#14503] Re: rubyfaq-990702.tar.gz — Akira Endo <akendo@...3.rim.or.jp>
遠藤です.
まつもと ゆきひろです
[#15177] Gtk::Menu の使い方に関する質問 — Miyaki Masahiro <miyaki@...>
はじめまして、宮木と申します。ruby-gtkのメニューオブジェクト
[#15179] ruby にメッセージの国際化の仕組みはありますか? — "HIRATA Naoto" <hirata-naoto@...>
はじめまして,平田@武蔵工大と申します.
[#15188] LAPACK へのインターフェース — Takashi Nishimoto <g96p0935@...>
Ruby を数値計算言語として使ってみたいのですが、
[#15245] Solaris 2.6 — Koyama Hideo<fa8h-kym@...>
御無沙汰しております。小山です。
[#15247] Meeting2000 0.93b3 出します — 松尾尚典 <matsuo_hisanori@...21.odn.ne.jp>
松尾です。
[#15264] 年月を範囲でうまく扱うには? — Yukihiko Eda <yuki-e@...>
江田です。
In message "[ruby-list:15264] 年月を範囲でうまく扱うには?"
> 大した手間でもなさそうだし、年月のクラスを作っちゃうのは
In message "[ruby-list:15284] Re: 年月を範囲でうまく扱うには?"
ふなばです。
ごとけんです
青山です。
ごとけんです
ふなばです。
[#15274] RE: Ruby-1.3.4 for cygwin (was Ruby/Gtk for cyg win) — 助田 雅紀 <masaki.suketa@...>
助田です.
[#15321] Re: rubyfaq-990702.tar.gz — Inaba Hiroto <inaba@...>
稲葉です.
[#15362] chomp で nil が返るのは? — ARIMA Yasuhiro <fit0298@...>
有馬です。
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
[#15378] RubyFAQ-990713 — Akira Endo <akendo@...3.rim.or.jp>
遠藤です.
In message "[ruby-list:15378] RubyFAQ-990713"
高橋征義です。
[#15384] getpeername — OHARA Shigeki <os@...>
大原です。
[#15405] nkf の使い方 — goto@...
後藤@横河工事です。たびたびお世話になります。
まつもと ゆきひろです
[#15406] dRuby/rudy/DRb — Masatoshi SEKI <m_seki@...>
[#15419] Serial I/O by Ruby — ARIMA Yasuhiro <fit0298@...>
有馬です。
[#15467] debugger exception handle (Re: Modified debug.rb) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
なひです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
In message "[ruby-list:15551] Re: debugger exception handle (Re: Modified debug.rb)"
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
[#15472] raa — Masaki Fukushima <fukusima@...>
福嶋です。
まつもと ゆきひろです
[#15474] RAA (Re: [Patch] debug.rb) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#15482] maillib 0.4.0 — Minero Aoki <aamine@...>
あおきです。
[#15497] how to use ruby-mode.el — Yoshiki Wada <wada@...>
和田と言います。
[#15518] 省略記法 — ARIMA Yasuhiro <fit0298@...>
Pascal では、構造体のメンバを表記する際に省略記法があります。
まつもと ゆきひろです
有馬@FITECです。
まつもと ゆきひろです
[#15530] 半 to 全 — Sinichiro Dezawa <dezawa@...>
出沢です
出沢です
このメイリングリストで‘杉原’というとsugihara.comの方ですよね。
In message "[ruby-list:15655] Re: 半 to 全"
すひ。
[#15557] グループウェアサーバ — hisanori@...
松尾です。こんにちは。
ども鴫原です。
松尾です。
ども鴫原です。
松尾です。おはようございます。
[#15572] tcltklib (LoadError) — SONE Toshihiko <tsone@...>
はじめまして、曽根俊彦と申します。OpenBSD 2.5(i386), Tcl/Tk 8.0.5
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto) さん
わたなべです.
[#15593] クラス定数について — Takashi Nishimoto <g96p0935@...>
以下のプログラムを実行したのですが、
[#15602] Meeting2000 0.93b4 リリースします — 松尾尚典 <matsuo_hisanori@...21.odn.ne.jp>
松尾です。
[#15615] make でのエラーに対する仕様 — Noritsugu Nakamura <nnakamur@...>
[#15634] Qt — kikutani@...
ruby/Qtという案はかつてあったのでしょうか?
立石です。
[#15669] cannot install ruby-gtk into FreeBSD 2.2.x — TAKAHASHI Masayoshi <maki@...>
Ruby Workshopのお手紙(請求書とも言う)が届いてうれしい高橋征義です。
いがらしです。
高橋征義です。
まつもと ゆきひろです
いがらしです。
まつもと ゆきひろです
わたなべです.
わたなべです.
いがらしです。
まつもと ゆきひろです
いがらしです。
小松です。
ごとけんです
小松です。
ごとけんです
小松です。
[#15679] about postgres-0.5.1 — goto@...
後藤@横河工事です。たびたびお世話になります。
前田です。
後藤@横河工事です。
まつもと ゆきひろです
後藤@横河工事です。
立石です。
まつもと ゆきひろです
笠原@Ruby初心者です.初めまして.
まつもと ゆきひろです
西@九大です。お久しぶりです。
まつもと ゆきひろです
[#15700] Ruby 1.3.6 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.6 is out, check out:
[#15704] Ruby 1.3.6 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.6 is repacked, check out:
[#15720] ruby debugger (like gdb attach) — kikutani@...
前にも2度ほど質問しましたが、cursesとかslangとかののrubyアプリを
まつもと ゆきひろです
On Fri, 30 Jul 1999 12:53:46 +0900,
Fri, Jul 30, 1999 at 02:13:13PM +0900 において
なひです.
On Sun, 1 Aug 1999 21:37:31 +0900,
なひです.
On Sat, 14 Aug 1999 14:49:39 +0900,
まつもと ゆきひろです
On Tue, 17 Aug 1999 12:37:37 +0900,
Wed, Aug 18, 1999 at 02:21:00AM +0900 において
なひです.なんか今ごろ.^^;
日時 Tue, 7 Sep 1999 19:00:14 +0900 の
[#15757] class compare — SONODA Yoshihide (園田 吉英) <ysonoda@...>
こんにちは、園田@九大です。
[#15761] alias new open — たむら けんいち <tamura-r@...>
たむら です。
[#15784] awk の gsub に相当するカウンターはないですか。 — Yukari Ono <fairy@...>
はじめまして、小野 ゆかり と申します。
[#15787] ERb について — 松尾尚典 <matsuo_hisanori@...21.odn.ne.jp>
松尾です。
[#15805] ruby-gtk-0.20 make install error — kikutani@...
ruby-gtk-0.20 ですが、make install のとき
[ruby-list:15321] Re: rubyfaq-990702.tar.gz
稲葉です.
遠藤さんの rubyfaq の修正案です.遠藤さんが最初にメモをMLに出された時
から書きたかったんですが,時間がとれなくて今になってしまいました.
#思った以上に長くなってしまいました...
------
追加したい項目:
Q. オブジェクトにメッセージを送った時に実行されるメソッドはどのように
捜されますか?
A. (MLで話題になった事があるに違いないんだけど, 見つけられませんでした)
------
> 2.1 ローカル変数のスコープはどのように決められていますか
:
> ブロック内が特別になっているのは,Threadや手続きオブジェクトの中で局所
> 化するためです.
「ローカル変数を局所化するため」と明確に書くべきだと思います. 正確に
は
「局所化できるようにするため」でしょうか.
------
> 2.4 変数や定数にメソッドを適用すると予期しないことが起こりますが
「変数や定数の値が知らないうちに変化してしまう事がありますが」と
した方がFAQを調べる人に回答内容がわかるのではないでしょうか.
------
> 3.2 ブロックはイテレータの中でどのように使われますか
回答ではイテレータという単語を使っていないので,「ブロックはメソッ
ドの中でどのように使われますか」の方がいいと思います.
> メソッドの中からブロックを実行するには,
yeild以外は直接の実行とは言えないと思うので.
「ブロックを使用するには」としたいです.
> yield制御構造,ブロック引数,
> Proc.newの3種類の方法で行うことができます.
この3種類の他にも, Cの拡張ライブラリで書けばできる気がします.「ス
クリプトのみの場合」というただしがきを追加した方が正確だと思います.
------
> 3.4 ブロックに引数を渡すにはどうしますか
> ブロックの先頭に,仮引数を||で囲って置くと,実引数が多重代入されます.
この仮引数が,メソッドの仮引数とちがってブロック内スコープに新し
く導入された変数とは限らない事を強調したいのですが...
------
> 4.1 +や-は演算子ですか
> +や-などは演算子ではなくメソッド呼び出しです.したがってオーバーライド
> することもできます.
以下4.1の回答ではオーバーライドという語が使われています.自分はこ
こでの説明では「オーバーライド」(上書き)ではなく,「オーバーロード」
(多重定義)という語の方がしっくりきます.(もちろんオーバーライドも
できるのですが)
------
> 4.2 関数はありますか
> 厳密に言えばRubyに関数はありません.Rubyにおける関数(みたいなもの)はす
> べてレシーバを省略した形のメソッドです.
以下のようなruby-manの組込み関数と用語集の説明を混ぜあわせた追加説
明はどうでしょう.
「特に, クラスObject(またはObjectがインクルードしているモジュール)
で定義されたメソッドは全ての通常のインスタンスをselfとする環境から
関数形式で呼び出せます.これらのメソッドでselfの状態にかかわらず同じ
値を返すものは一般の言語における関数のように用いられます」
> def writeln(str)
:
> のように一見関数のように見えるものも,mainというオブジェクトのメソッド
> です.
この説明だと,mainの特異メソッドになるように読めます.
トップレベルでのdefはObjectクラスのメソッドになるのですよね?
------
> 4.9 引数は参照渡しですか
> 参照渡しです.したがって,参照されているオブジェクトが,自分の状態を変
> 更するメソッドを持っている時には,副作用(それが主作用かもしれません
> が)に注意する必要があります.
Pascal,Fortran等の言語で言う「参照渡し」の意味とは違うと思います.
C++の「参照型」とも違いますし.「値渡しです. が,Rubyではほとんどの
場合値そのものが参照なので,参照渡しの側面があります」という方がい
いと思います. (初心者には難しい記述かもしれないけど..) Lispと同じな
のは確かです.
前田さんのFAQにあった以下の記述も取り入れた方がいいと思います.
Q. 引数への代入をするとどうなりますか。
A. 引数への代入を行ってもメソッドの呼び出し側には影響はありません
Q. 引数にメッセージを送るとどうなりますか。
A. 引数は呼び出し側のオブジェクトと同じオブジェクトなので,メッセー
ジを送ることでオブジェクトの状態が変更される場合は呼び出し側にも影
響があります。
------
> 4.14 破壊的メソッドとは何ですか
> オブジェクトの内容を変更してしまうメソッドで,文字列や配列,ハッシュな
> どにあります.同名のメソッドがあって,一方はオブジェクトのコピーを作っ
> て返し,もう一方は変更されたオブジェクトを返すようになっている場合, !
> のついた方が破壊的メソッドです.
「Array#filter等 !がつかない破壊的メソッドもあります.」を追加したい
です.
------
> 6. 組込みライブラリ
この6節に集められている質問/回答を「組込みライブラリ」でまとめるの
には違和感があります.
------
> 6.1 :exitというのは何ですか
「:exit等の:のついたワードは何ですか?」の方がわかりやすいと思いま
す.
それから, ここでString#internについて説明しても良いのではと思います.
------
> 6.2 シンボルから値を取り出すにはどうすればいいですか
「シンボルと同名の変数の値を取り出すにはどうすればいいですか」
の方が正確だと思います.
------
> 6.5 nilとfalseはどう違いますか
:
> ?のつくメソッドは,真偽を返す場合はtrue,falseを,そうでない時は値もし
> くはnilを返します.
正しくは「メソッドが真偽を返す場合はtrue,falseを,そうでない時は
値もしくはnilを返す仕様にすることが好まれます.ただし言語とし
て強制しているものではありません」だと思います.(でいいでしょうか?)
「Ruby組込のメソッドはそのようになっているはずです」
も加えてもいいかもしれません.
?のつくメソッドについては,
「?のつくメソッドは真偽を返すメソッドにする事が期待されますが,
歴史的事情からRuby組込のメソッドでそうなっていないものもあります」
------
> 6.6 ファイルを書き換えても変化しません
:
> io = open("example", "w+")
"r+"の間違いだと思います.
> ary = io.readlines
> ary.each_with_index{|l, i| l[0,0] = (i+1).to_s + ": "}
上2行は,以下でもいいですね.(Perl風?)
ary = []
ary.push "#$.: #$_" while io.gets
この回答の中で-iオプションや$-i変数の説明をしても良いのではないでしょ
うか?
------
> 6.9 ファイルを時間の新しい順にソートしたいのですが
> Dir.glob("*").filter{|f| [File.mtime(f), f]}.
> sort{|a,b| b[0]<=>a[0]}.filter{|e| e[1]}
> とすると,カレントディレクトリの".",".."以外のファイルを更新時間の新
> しい順にソートした配列を返します.
sortメソッドにブロックをつけなくてもソートできますよね.更新
時刻が同じ時にファイル名で比較してソートしてしまいますが問題ないで
しょう.それから,なぜ以下がよくないかを書いた方がより良いと思い
ます.
Dir.glob("*").sort{|a,b| File.mtime(b)<=>File.mtime(a)}
------
> 6.10 ファイルの行数を数えたいのですが
> ファイルの最後にも改行があるものと仮定して,次のが一番速いでしょう.
> open("file").read.delete("^\n").size
ruby-1.3.4-0531からできた UNDOCUMENTED なメソッドString#countを使え
ば「open("file").read.count("\n")」がストレートでしょう.
UNDOCUMENTED なので 8節に入れるべきかもしれません.
------
> 6.14 文字列から1文字ずつ文字列を取り出すにはどうしますか
ASCIIのみならeach_byteで十分ですので,「日本語等マルチバイト文字を
含む文字列から...」とした方がいいと思います.
------
> 6.16 タブをスペースに展開したいのですが
> aに展開したい文字列があるとして,次のどちらかを使えばいいでしょう.
> 1 while a.sub!(/(^[^\t]*)\t(\t*)/){$1+' '*(8-$1.size%8+8*$2.size)}
> 1 while a.sub!(/\t(\t*)/){' '*(8-$~.begin(0)%8+8*$1.size)}
gsub!とpackを使った以下の方法があります.
a.gsub!(/([^\t]{8})|([^\t]*)\t/n){$+.pack("A8")}
--
稲葉 浩人 <inaba@st.rim.or.jp>