トップページ⇒tech
1001コメント311KB

Ruby初學者スレッド Part 9

レス数が1000を超えています。これ以上書き込みはできません。
0001紅寶石2006/11/21(火) 08:33:42
まずはマニュアル

マニュアル
http://www.ruby-lang.org/ja/man/
Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby リファレンスマニュアルの Windows HTML Help版
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
Rubyリファレンスマニュアル刷新計画
http://doc.loveruby.net/


前スレ
Ruby初心者スレッドPart8
http://pc8.2ch.net/test/read.cgi/tech/1159424939/

>>2-10
0951デフォルトの名無しさん2007/01/20(土) 00:39:08
つーか>>914は単にディレクトリが空だから
Dir.globが空Array返したってだけじゃないのか?
"*"はdot fileにはマッチしないんだから。
0952デフォルトの名無しさん2007/01/20(土) 04:19:11
>>936

coding pragma を追加したいところだけど、あれは1.8には持ってこれない
という話だから、それくらいかな?

ところで署名でも集めるの?w >強化策



0953デフォルトの名無しさん2007/01/20(土) 08:14:15
>>949
お前だけだ。分かってくれたのは・・・。
もう少して危ない人になるところだった。
0954デフォルトの名無しさん2007/01/20(土) 11:44:14
exerbについての質問です。
レシピファイル作成をスクリプトの実行と同時に自動で行う機能があるとのことですが、
ずっとループし続けるスクリプトの場合には、自動生成できないのでしょうか?


もしあれば教えてください。
0955デフォルトの名無しさん2007/01/20(土) 13:04:05
ループ一回したら終了するの作ってレシピ作ればいいじゃない
0956デフォルトの名無しさん2007/01/20(土) 14:05:33
なるほど!
実際、requireするのを探すだけですもんね。

ありがとうございました。
0957デフォルトの名無しさん2007/01/20(土) 15:08:27
下のようなスクリプトが終了したとき
test という文字列のあと端末の高さぶんの空行が開いた後に
プロンプトが表示されます。
この空間ができないようにするにはどうしたらいいんでしょうか?
Curses::stdscr.setpos(Curses::stdscr.cury - 1, 0)
をはさんでみるなどしてみましたがダメでした。
端末は Cygwin/ck/screen/zsh です。

require "curses"
begin
Curses::init_screen
Curses::stdscr.addstr("test\n")
Curses::stdscr.refresh()
rescue
Curses::close_screen
end
0958デフォルトの名無しさん2007/01/20(土) 21:10:40
>>951 そのとおりだが、globが駄目なのはファイルを作って試してみれば明らか
>>928 が説明してくれている通りで、例えば'も'を含んだパスとか駄目
0959デフォルトの名無しさん2007/01/21(日) 14:47:28
HTML(string)をDOM的に解釈して扱うライブラリあるかな
と思って探したんですが見つけられませんでした
そういったライブラリってありますか? 
0960デフォルトの名無しさん2007/01/21(日) 15:14:16
>>959
DOM使え。
0961デフォルトの名無しさん2007/01/21(日) 15:35:22
たぶんない。
どうしても DOM を使わなければいけない理由がなければ、
DOM を使わないほうが楽なので。
0962デフォルトの名無しさん2007/01/21(日) 15:38:50
>>957
$TERMはなんになってる?
screen抜いてみたもダメ?
0963デフォルトの名無しさん2007/01/21(日) 15:51:23
>>960-961
ありがとうございます
jsを扱ってきたのでDOM処理ができれば今後も楽だなぁと思ったんですが。

単純な文字列処理でも強力なので素直にそっち使っていきます
0964デフォルトの名無しさん2007/01/21(日) 16:23:01
処理対象のHTML/CSSがある程度きれいに記述されているなら
http://wota.jp/ac/?date=20070115#p01
とか参考になるかと。
0965デフォルトの名無しさん2007/01/21(日) 17:20:49
>>964
面白そうなモノをありがとう 
しかしなぜか(←思考停止)モジュール内部でエラー出してだめだったので
人並みにruby出来るようになるまで正規表現で対応します
0966デフォルトの名無しさん2007/01/22(月) 12:42:32
Rubyist Magazine - あなたの Ruby コードを添削します 【第 1 回】 pukipa.rb
http://jp.rubyist.net/magazine/?0010-CodeReview#l12

↑これを読んでいるのですが、
「リテラルへの式埋め込み」ってありますよね?
式の埋め込みは、コンパイル時にチェックがされないので、どうなのかなー?
実行してみないとわからない、と思うのですが、
みなさんは多用されてます?
ユニットテスト前提なんだろうか・・・。
0967デフォルトの名無しさん2007/01/22(月) 13:26:08
>>966
どっちみち手動でも自動でもテストはしなきゃ話にならんのだから使いたいときに使えばよい。
0968デフォルトの名無しさん2007/01/22(月) 14:25:49
>>966
少なくともSyntax Errorはコンパイル時にチェックしてるようなので
問題ないと思うんだが
0969デフォルトの名無しさん2007/01/22(月) 18:20:35
>>950
ああ、それのことか。
それに関しては1.8にバックポートされる可能性はないと思うよ。
0970デフォルトの名無しさん2007/01/22(月) 22:34:34
列挙型ってあります?
0971デフォルトの名無しさん2007/01/22(月) 22:55:39
>>966
1.8以降なら、たとえば "lit#{code}eral" は
"lit" << code.to_s << "eral" とおなじ形に解釈される。
普通のrubyコードでチェックされる点はチェックされるし、
チェックされない点はチェックされない。
0972デフォルトの名無しさん2007/01/22(月) 23:04:32
>>970
場合によるけどシンボルがそれに近い
09739662007/01/22(月) 23:13:37
書いた後で、実行時にコンパイル含めいろいろするんだから
変なこと言ったかな?と思ったんですが、
どうやら、自分が言いたかったのは、ruby -c での構文チェックのことでした。
(後だしっぽくて申し訳ない)

・・・と思ったら、

hoge = 1234
puts "hoge = #{hoge_} でつ"

だろうが、

hoge = 1234
puts "hoge = " + hoge_ + "でつ"

だろうが、ruby -cは通るのか・・・orz
構文チェックってもしかして、ザルですか?(:D)rz
0974デフォルトの名無しさん2007/01/22(月) 23:46:05
>>973
だって構文としては正しいし。
self.hoge_を期待するというだけ。
0975デフォルトの名無しさん2007/01/22(月) 23:48:50
>>972
シンボルか。
サンクス。
0976デフォルトの名無しさん2007/01/23(火) 00:14:00
実行時エラーと構文エラーの区別が付いてないやつがいるな
0977デフォルトの名無しさん2007/01/23(火) 00:29:25
rubyの弱点ではあるな
0978デフォルトの名無しさん2007/01/23(火) 00:50:35
遅延バインディングをサポートしてる言語はみなそうでは
0979デフォルトの名無しさん2007/01/23(火) 02:47:12
Cでlintが通ったのにバグって動かないとか言ってる馬鹿とおなじ
0980デフォルトの名無しさん2007/01/23(火) 02:58:23
Rubyはカルトなので批判は許しません!
0981デフォルトの名無しさん2007/01/23(火) 03:01:51
Rubyの批判をした訳ではないだろうに
0982デフォルトの名無しさん2007/01/23(火) 05:56:45
中学生が夜中にアンチの真似したら
ちょっと滑っちゃったという図
0983デフォルトの名無しさん2007/01/23(火) 06:12:28
批判じゃないってことにするあたりが、ますますカルトっぽくて気持ち悪い
0984デフォルトの名無しさん2007/01/23(火) 07:10:43
批判ではないものを批判だということにするとカルトっぽくないかというと、
まったくそんなことはないわけで。
0985デフォルトの名無しさん2007/01/23(火) 13:24:02
宗教話は本スレで

質問受付中
0986デフォルトの名無しさん2007/01/23(火) 14:17:33
YARV になると、拡張ライブラリの書き方は変わるのでしょうか?
今まで作った拡張ライブラリは書き直しする必要がありますか?
0987デフォルトの名無しさん2007/01/23(火) 14:20:28
すみません、自己解決しました。
README.EXT{,.ja} の内容見たら変更は無いですね。
0988デフォルトの名無しさん2007/01/23(火) 14:31:18
書き直しの必要な拡張ライブラリも当然ある。
でも、ここでこんなことを聞くレベルなら、まず問題ないだろう。
0989デフォルトの名無しさん2007/01/23(火) 15:27:03
どうもです。

今までに書いた拡張ライブラリのうちいくつかを試してみましたが、
RSTRING(s)->ptr => RSTRING_PTR(s), RSTRING(s)->len => RSTRING_LEN(s) とか、
基本的なところから引っかかってしまいました。
コンパイルまで辿り着いても、実行してみたら core 吐くし・・・

どうやら README.EXT{,.ja} の内容も更新されていないようですね。

先は長そうです・・・ orz
0990デフォルトの名無しさん2007/01/23(火) 15:47:38
内部イテレータはイケてないという話を読んだのですが、
Rubyのイテーレータは内部、外部どっち?
ttp://enbug.tdiary.net/20070123.html#p01
0991デフォルトの名無しさん2007/01/23(火) 15:56:48
内部。
0992デフォルトの名無しさん2007/01/23(火) 16:00:18
>>989
README.EXT{,.ja}にはRSTRING_PTRとRSTRING_LENは書いてあるよ。
coreを吐くのは、それだけじゃ誰が悪いかよくわからんね。
0993デフォルトの名無しさん2007/01/23(火) 16:02:39
>>990
一概に外部イテレータがよくて内部イテレータがダメ、ということもなくて、
外部イテレータには確かに内部イテレータにできない操作もできるけど、
逆にその分扱いにくい(記述量が増える)という欠点もある。
両方使えるのが理想じゃないかね。

なお、Rubyで外部イテレータを使いたい場合は require "generator"
これ、組み込みにならないかねえ。
0994デフォルトの名無しさん2007/01/23(火) 16:17:31
>>992
ありゃありゃ、確かに書いてました。すみません。
core の方はまあ自力でなんとかしてみます。

ただ、ウチの環境 (FreeBSD 6.1) だと、拡張ライブラリ関係なく挙動が怪しいので、
拡張ライブラリの前に解決すべき問題が山のようにありそうです・・・
私のコンパイルの仕方がまずいだけなのかもしれませんが (汗)

^C で止めると core 吐いたり。

% ruby -esleep
^Czsh: bus error (core dumped) ruby -esleep
%
09959902007/01/23(火) 16:27:51
>逆にその分扱いにくい(記述量が増える)という欠点もある。
これは(言語)実装者にとって扱いにくいという意味ですよね?
先のenbug diaryによるとPythonではコルーチンを使って平易に実装しているとあります。
このほかに何か内部イテレータのメリットってありますか?
09969932007/01/23(火) 16:49:52
>>995
いや、993では処理系実装者にとって扱いにくいかどうかなんて考えてない。
その言語の利用者にとって、だよ。

外部イテレータを使うのも、外部イテレータを作るのも、内部イテレータの
それに対して記述量が必然的に多くなる。
Pythonのように外部イテレータを内部イテレータ的に利用するsyntax sugarを
用意すれば、使う方に関しては若干ましにはできるけどね。

というか、990で参照してる日記の先頭のリンクを辿れよ。
0997デフォルトの名無しさん2007/01/23(火) 17:04:50
>Pythonのように外部イテレータを内部イテレータ的に利用するsyntax sugarを
>用意すれば、使う方に関しては若干ましにはできるけどね。
若干ましというより Python のほうがはるかに使いやすくねえか?
0998デフォルトの名無しさん2007/01/23(火) 17:08:44
Rubyなぞ問題外(^^;
0999デフォルトの名無しさん2007/01/23(火) 17:10:50
>>997
そうか?
好みの問題もあるから、あんまり強くも言えないが、「はるかに使いやす」いとは思わないな。
せいぜい、これはこれで悪くない、くらい。
1000デフォルトの名無しさん2007/01/23(火) 17:24:24
Matzが内部イテレータがいいと言ったら内部イテレータがいいんだ!
ほかに理由などない!

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。