[#26241] postgres を CGI の中から require できません — ITO Yoshiaki <yoshi@...>
いとう と申します。
[#26253] Perl/Ruby Conference — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
わたなべです.
なかだです。
[#26274] アプリにマクロをつけるのについて — polygon <kiyose@...>
ポリゴンです。
[#26278] Ruby/KAKASI bug? — SHIRAKURA Tetsuya <shirakura@...>
しらくらです。
> 次のような,KAKASI で変換する script を実行させると,どんどんメモリを喰
[#26295] tail -f のように読み続ける方法は? — Kazuhiro NISHIYAMA <zn@...>
tail -fのようにだんだん大きくなるファイルを読み込み続けるのは
まつもと ゆきひろです
渡辺哲也です。
On Mon, 4 Dec 2000 10:18:47 +0900
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
とみたです。
まつもと ゆきひろです
ごとうゆうぞうです。
まつもと ゆきひろです
ごとうゆうぞうです。
[#26309] DDJ — KIMURA Koichi <kimura.koichi@...>
[#26313] 並行するスレッドの記述法について — Kenya OGATA <ind.onosetu1@...>
おがたといいます。
なかだです。
おがたです。なかださんコメントありがとうございます。
なかだです。
村木@日立ITです。
なかだです。
村木です
こんにちは、なかむら(う)です。
村木です。
こんにちは、なかむら(う)です。
村木です。
こんにちは、なかむら(う)です。
[#26381] はじめまして — tkondo@...
メーリングリストの皆さんはじめまして。
[#26384] [PATCH] stupid bug/miss — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#26413] TMail: UNIX From in MH format(?) — OZAWA -Crouton- Sakuro <crouton@...>
さくです。
[#26415] cgi.rb で InsecureOperation — Takeshi Komiya <katsuwo@...>
青山です。
[#26436] Array#& — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#26475] Regexp.new のオプション — URA Takefumi <hage@...>
こんなことをやってみました。
[#26513] media watch 2000.12.08 — Noritsugu Nakamura <nnakamur@...>
[#26516] n-fold loop — Hiroshi SATO <hiroshi@...>
佐藤と申します.
[#26532] Win で dRuby — m_seki@...
[#26536] ファイル名が文字化け — KUROSAWA Takashi <tabby@...>
Tabby as くろさわ@秩父です。
わたなべです.
[#26547] size of raa — Minero Aoki <aamine@...>
あおきです。
まつもと ゆきひろです
Toshです。
[#26554] Hash.new — Takao KAWAMURA <kawamura@...>
Hash.newの挙動について、理解できないことがありましたので、教
ごとけんです
なかだです。
In message "[ruby-list:26559] Re: Hash.new"
まつもと ゆきひろです
In message "[ruby-list:26564] Re: Hash.new"
At Sun, 17 Dec 2000 02:23:14 +0900,
In message "[ruby-list:26566] Re: Hash.new"
At Sun, 17 Dec 2000 03:28:55 +0900,
まつもと ゆきひろです
デフォルトって、現状だと += などの演算代入しか恩恵を受けない
At Sun, 17 Dec 2000 22:55:30 +0900,
まつもと ゆきひろです
ごとけんです
At Tue, 19 Dec 2000 01:37:31 +0900,
In message "[ruby-list:26619] Re: Hash.new, fetch, block argument, default"
[#26605] [Q] Oracle PL/SQL with bind vars — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。
よしだです
石橋秀仁です。よしださん、リプライありがとうございます。
よしだです
石橋秀仁です。こんばんは。
石橋秀仁です。こんばんは。
渡辺哲也です。
石橋秀仁です。こんばんは。
わたなべです.
なひです。
[#26609] net/http,smtp,pop 1.2 pre 1 — Minero Aoki <aamine@...>
あおきです。
On Mon, 18 Dec 2000 23:04:32 +0900
高橋征義です。
あおきです。
artonです。
[#26628] Hash.reject returns a Hash? — Takao KAWAMURA <kawamura@...>
1.4.6のドキュメントには
わたなべです.
[#26658] cgi.rb and Regexp::last_match — OHSHIMA Ryunosuke <ryu@...>
大島です。
青山です。
まつもと ゆきひろです
青山です。
原です。
まつもと ゆきひろです
有馬です。
まつもと ゆきひろです
At Fri, 22 Dec 2000 15:03:17 +0900,
まつもと ゆきひろです
有馬です。
まつもと ゆきひろです
有馬です。
まつもと ゆきひろです
ごとけんです
新井です。
[#26659] FILE.eof などについて — Hiroyuki Kai <hiroyuki@...104.net>
はじめまして、この度ruby-listに入りました甲斐と申します。
[#26667] racc -E — Tadayoshi Funaba <tadf@...>
ふなばです。
[#26670] Re: cgi.rb and Regexp::last_match — "K.Kosako" <kosako@...>
さっきruby-listに入ったばかりなので、
まつもと ゆきひろです
> まつもと ゆきひろです
まつもと ゆきひろです
前田です。
> 前田です。
前田です。
> 前田です。
前田です。
> 前田です。
[#26700] cygwin 版の eruby が動きません。 — Keisuke Minami <keisuke@...>
こんばんは。三並です。
[#26725] ruby 1.6.2-preview4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
なかだです。
有馬です。
清水(simtak)@biglobeです。
[#26735] gpib-rb — kiwamu <kiwamu@...>
こんにちは。岡部と申します。
皆さんこんにちは、田鎖です。
皆さん今晩は、田鎖です。
[#26745] misc — "ページコム佐藤" <k-satoh@...>
佐藤@おおいたページです。
[#26750] Ruby SHINNENKAI 2001 — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
[#26803] ruby-mode.el: / — Takao KAWAMURA <kawamura@...>
ruby-mode.el 1.24 の話ですが、例えば
[#26846] Ruby 1.6.2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#26865] Windows2000 について — 石田 宏香 <h-ishida@...>
はじめまして♪
[#26875] cgi.rb <form>element BUG — MoonWolf <moonwolf@...>
cgi.rb Version 2.1.2 1246行目からの
[#26892] cgi/session.rb を eruby で使用するには — yuichi TAKAHASHI <yuichi@...>
[#26895] Ruby の言語仕様の策定 — Hiroyuki Kai <hiroyuki@...104.net>
甲斐@Ruby超初心者です。
[#26926] RD で引用 — rubikitch <rubikitch@...>
るびきちです。
[#26932] Struct の parse — Keisuke Minami <keisuke@...>
こんばんは。三並です。
[#26949] www.ruby-lang.org で気がついたこと — Keisuke Minami <keisuke@...>
こんばんは。三並です。
[ruby-list:26703] 一行野郎と Ruby について (Re: [Q] Oracle PL/SQL with bind vars)
石橋秀仁です。こんばんは。
どうでもいい観念的な話です。
#得意分野(笑)
タイトル:
一行野郎と、Rubyのmethod chainの優位性についての考察
Hideto ISHIBASHI <hideto-i@rr.iij4u.or.jp> wrote:
> あるいは、同じ内容を一行野郎で、
> ruby -r oracle -e 'Oracle.new("scott", "tiger").exec("select * from foo") { |r| print(r.join("\t"), "\n") }'
> と書けるのが僕にとっては嬉しい点です。
Rubyのmethod chainは「左から右に連鎖」します。
「左から右にコードをタイプ」するのと一致しています。
考えながら書ける。それが「自然なコーディング」や
「楽しさ/嬉しさ」という感覚につながっている気がします。
# Perlで同じことを書くと「右から左に連鎖」するからヤです。
# 例えば gets.chop.split("\t").each{|e| foo(e)} のような処理。
Rubyのmethod chainは、考える順に書くことができて、すごく自然です。
考えながら書く=考える道具として優秀だと思います。メソッドの動作を
確認するために、コマンドラインで一行野郎(one-liner)を書くときとか。
たとえば、一行野郎の
'Oracle.new("scott", "tiger")
.exec("select * from foo") { |r| print(r.join("\t"), "\n") }'
を書くときに、ぼくの頭の中では
Oracle.new("scott", "tiger") で生成した Oracle オブジェクトに、
メッセージ exec("select * from foo") を送って、
ブロック { |r| print(r.join("\t"), "\n") } をコールバックしてもらう
とイメージしながら、同時に手を動かしています。
一行野郎で書けない場合は、どうなるかというと、
'conn = Oracle.new("scott", "tiger");
cur = conn.exec("select * from foo");
cur.fetch { |r| print(r.join("\t"), "\n") }'
と書くことになります。このときのイメージは、
Oracle.new("scott", "tiger") で生成した Oracle オブジェクトを
conn に代入して、conn に exec("select * from foo") を送って
生成された Oracle::Cursor オブジェクトを cur に代入して、
cur に fetch を送ってブロック { |r| print(r.join("\t"), "\n") }
をコールバックしてもらう
となります(僕の場合)。
イヤなのは、代入により思考がいったん「逆向き」になることです。
バックトラックというか。心の中のモノローグ:
Oracle.newしたやつを何かに代入しよう。
名前は・・・connでいいや。
じゃ、代入文を書こうかな・・・
って、カーソル左に戻さなきゃなんね〜(怒)
ってなかんじですね。だから途中で生成される個々のオブジェクト
について代入文を書くのは、とても苦痛です。
何度も書いた定型文なら、最初から代入文として書くかもしれません。
しかし、まず代入文を書くというのは、思考の順序として自然ではない
と思います。まず右辺に何らかの文があって、その結果を左辺に代入する
のですから、右辺が先で、左辺があとです。そもそも右辺が確定しなければ、
左辺に代入されるオブジェクトの型も分からないので、順序はあると思います。
仮に、最初から "conn = Oracle..." と書き始めて、
後戻りせずに全部書ききるためには、数手先まで
読んでいなければいけません。
これは、思考スピードとタイプスピードの不一致を起こすので、
勘違いやミスタイプの可能性が上がると思います(仮説)。
思考スピードが速ければよいかというと、そうではなくて、
思考とタイプのスピードが一致していないことは、
それだけで問題だと思います。
#仮説の前提:一行野郎なのでカーソルを右往左往させず一気に書きたい。
#まあbashをviモードで使えばあんまり苦じゃないような気も。
また、最初に全体の構成を考えるということは、
考えながら書くことができないということです。
気軽さが損なわれています。
結論:
method chainは考えながら書く一行野郎に最適
蛇足:
イテレータも簡潔に書くのに最高
試案:
文の結果 → 代入する変数
のような構文があればよい?
Oracle.new("scott", "tiger") -> conn
やっぱりきもちわる〜いですね (^^;;;
--
Hideto "rubyholic" ISHIBASHI http://www.rr.iij4u.or.jp/~hideto-i/