08/08/30 07:31:27
こういうのじゃね
html = uri.read
case uri.host
when /www.example.com/ then
parser = TableParser_www_example_com
when /www.example.jp/ then
parser = TableParser_www_example_jp
end
datatable = parser::parse(html)
最初は文字列として連結して eval("#{classname}.#{method}") するしかないよなと思ってたんだが
普通にメソッド呼び出しのドットがくっついたときはさすがに参った
349:デフォルトの名無しさん
08/08/30 10:14:30
てゆーか実はダラダラしてるほうが行儀正しいって突っ込みは無いのかよ
350:デフォルトの名無しさん
08/08/30 12:13:35
>>349
あなたの使ってるWebサーバの設定を見直してみることをお勧めする
351:デフォルトの名無しさん
08/08/30 17:51:26
java使いなんですがrubyに興味あって調べてます。
それで、rubyのホームにあるAPIは読みにくいので、どこかお勧めないでしょうか。
英語のサイトを探してもないみたいなんで・・
rubyはリテラルが多いので、少し使わないとすぐ忘れちゃうんですよね。
352:デフォルトの名無しさん
08/08/30 18:06:25
刷新中の新リファレンスマニュアルはどう?
URLリンク(doc.loveruby.net)
353:デフォルトの名無しさん
08/08/30 18:08:17
と思ったけどリテラル一覧はないか。
これが見づらいということなんだよねぇ?
URLリンク(www.ruby-lang.org)
354:デフォルトの名無しさん
08/08/30 18:21:25
APIはいつもみるんで、MSDNみたいにリンクが多いよりは、Java docみたいな単純なテキスト(とページ内参照 a.htm#ref)のほうがいいと使いやすいと思います。
1.9のそれも使いやすそうですね。
文章多めで説明長・解説つきなら英語でやった方がいいんじゃないですか。
で、日本語のは短い説明だけで、よくアクセスされる必要な記事・解説は、英語の翻訳で済ますと効率的な設計かなと思います。
もしjavascriptでfile i/oができるなら、rubyじゃなくて、jsつかうんで。なぜなら、言語の機能よりも、文章がまとまってるって事が大事じゃないでしょうか。
ルビリストとかモルモンぽいんじゃなく、まともな人なら、コレが妥当なところでしょうか。
URLリンク(www.ruby-doc.org)
355:デフォルトの名無しさん
08/08/30 18:29:33
と、ここで提案してもしょうがないですし
JavaScript使いたいならJavaScript使ってくださいとしか
356:デフォルトの名無しさん
08/08/30 18:30:55
C#とかDとかrubyはリテラル多すぎw
単純な制御とか処理はいちいちAPI探すの面倒だし、イテレーターつかわないんでwhile/forでいいよ。
OOも魅力的だけど、制御とか処理とかと関係ないし、肝心なOOのライブラリがないじゃんw
357:デフォルトの名無しさん
08/08/30 20:53:45
昔VB5を少しだけやったときウィンドウに表示されてたんですけど
rubyは違うんですか?
プログラムは全くの初心者です・・・
358:デフォルトの名無しさん
08/08/30 20:57:09
ウィンドウはプログラム言語がわざわざ出力先として敢えて作っているだけです
プログラムの基本は入力(と処理と以下略)と出力であって、
Rubyは入力だけを受け取って出力だけを行います
てか何か解説とか入門とか読んで試してるんではないん?
359:デフォルトの名無しさん
08/08/30 21:04:41
>>358
Rubyの場合は出力先を指定しなければいけないのですか?
メモ帳とか・・・?
>>1のたのしいRubyをこの前買って 疑問に思ったから書き込みました
360:デフォルトの名無しさん
08/08/30 21:49:51
増えていく可能性のある配列を再帰的に処理する場合ってどうすればいいですか?
以下のような感じのやつで2を表示させたいですが1で繰り返しが終わります。
#!/usr/bin/ruby -Ku
@i=[1]
@i.each{|a|
p a
b=2
@i << b
@i.delete(a) if b != nil
}
361:デフォルトの名無しさん
08/08/30 22:41:54
>>360
挿入して削除したら、増えてないじゃん
362:デフォルトの名無しさん
08/08/30 22:46:38
イテレータの中で要素数を増減させるのはあんまりよろしくないよなあ
javaだと例外飛んで怒られるくらいだし
363:デフォルトの名無しさん
08/08/30 23:15:09
再帰的に、というのがわからんが、
単純に、
a = 0
while a < @i.size do
...
a += 1
end
と書けば?
364:デフォルトの名無しさん
08/08/30 23:31:23
>299
遠くからすみません。
そんな書き方できるんですね。
ありがとうございました。
でも、何で括弧がいるんだという辺りは
よく理解できませんでした。
勉強します。
365:デフォルトの名無しさん
08/08/30 23:42:04
>>361
書き方へんなのでごめんなさい
回している配列が途中で条件によって増えていって
そうじゃない場合は増えなくなるので最後には
配列がなくなってほしかったんです。
って書いてて意味が分からなく。。
>>362
何となく駄目ってのは分かるのですが
今作ってるやつだと
それ以外思いつかなったので。
>>363
ありがとう
最後にretryつけたらそれでもいけたので
駄目だったらその方法試してみます。
366:デフォルトの名無しさん
08/08/31 00:26:55
ああ、配列の要素の値を元にした処理の結果で、配列の要素が増えたり減ったりするんだな
で、新たに増えた配列の要素も、要素増減の処理に使うんだ
…なんかどっか設計が間違ってるような気もするが…
367:デフォルトの名無しさん
08/08/31 00:43:19
スタックとかキューとか知ったら幸せになれそうなんだが違うのかな
368:デフォルトの名無しさん
08/08/31 01:25:17
よくよく考えると反復処理とは言えないようなことを、イテレータでやっちゃうもんだから
ややこしいんじゃないか
369:360
08/08/31 01:39:14
>>366,367,368
精進します。
とりあえず動くっぽいので動いてから
設計見直してみます。
370:デフォルトの名無しさん
08/08/31 02:18:00
>>368
なんかそんなかんじするね
arr = [1]
while !arr.empty?
elem = arr.shift
value = somefunc(elem)
unless value.nil?
arr << value
end
end
わかんねーや
371:デフォルトの名無しさん
08/08/31 03:32:49
設計とか言う言葉を使うレベルじゃないと思うんだけど?
372:デフォルトの名無しさん
08/08/31 07:06:42
#! ruby -Ks
s1="あいう"
p s1.length
ar=s1.split (//)
p ar.length
日本語文字数を計算するのはコレしかないんですか?
それと、size/lengthは何か違いがあるんですか。
内部の実装で、sizeの方がsizeof (byte) * count
lengthの方が自動で str.split(//).size みたいな遅延評価
とかになってないんでしょうか?
373:デフォルトの名無しさん
08/08/31 07:57:05
>>372
jcodeをrequireしてjsize/jlength
内部の実装は知らんがsize/lengthは同じだろ
374:デフォルトの名無しさん
08/08/31 14:23:42
ruby-1.8.7-p72/string.c
rb_define_method(rb_cString, "length", rb_str_length, 0);
rb_define_method(rb_cString, "size", rb_str_length, 0);
再定義しない限り、Cのレベルで実体は同じ処理って事だ。
375:デフォルトの名無しさん
08/08/31 15:16:59
includeのたびに新しく定義しなおすのはイケてない。
module A
module ClassMethods
def hoge
puts 'Hoge'
end
end
extend ClassMethods
def self.included(m)
super
m.extend(ClassMethods)
end
end
というのが定番。
376:デフォルトの名無しさん
08/08/31 15:26:16
%w[A Z AA IV].map {|s| s.downcase.succ.tr("a-z", "1-9a-z").to_i(26)} # => [1, 26, 27, 256]
377:デフォルトの名無しさん
08/08/31 15:31:10
すまん、アンカーつけ忘れた。
>>375は>>252
>>376は>>277
378:デフォルトの名無しさん
08/08/31 21:31:49
初心者なんですが質問です
処理を書くとき、classにした方が素敵ですか?
イテレータはeachの繰り返しにしか使ってないのですが
他に便利な使い方はありますか?
379:デフォルトの名無しさん
08/08/31 21:46:40
> classにした方が素敵ですか?
メソッドにしないと非常にかっこ悪い
オブジェクト指向におけるクラスの概念はわりと高潔なものだが、
Rubyでは「処理をまとめてnewメソッドでスタートさせるもの」でもいいと思う
特に初心者のうちはクラスの使用条件というものについてうだうだ悩むのは無駄
てきとーにまとめて便利に使いながら自分で考え方見つければいい
あと、eachは基本だが、mapとfind_allの使用頻度と便利度は異常なので、
EnumerableやArrayクラスのメソッドはなるべく早く把握して適宜調べて使えるようになるといい
380:デフォルトの名無しさん
08/08/31 22:08:58
>>378
>処理を書くとき、classにした方が素敵ですか?
基本的にはclassにした方が素敵
どこからどこまでをclassにするかは、プログラムの目的や個人の趣向などによる
慣れないうちは設計が難しいので
分かりやすいデータのまとまりを、class化することから始めるのがオススメ
掲示板の1記事をArticleクラスにするとか
381:デフォルトの名無しさん
08/08/31 22:15:48
irb> def h(*p) ; p p.class; end
irb> h(1)
Array
irb> h(1=>2,3=>4)
Array
うわー困るうううっていうかめんどくさいいいい
382:デフォルトの名無しさん
08/08/31 22:20:13
>>378
繰り返しじゃないから厳密にはイテレータの話じゃなくなるけど
IO#openみたいに後始末を自動でしたいときにも便利
383:デフォルトの名無しさん
08/08/31 22:22:21
>>382
それ関係ないだろ
単にensure節の効果だ
384:デフォルトの名無しさん
08/08/31 22:22:48
メソッドもクラスもしくはクラスもメソッドだったらいいのに
385:デフォルトの名無しさん
08/08/31 22:32:32
たかがメソッド実行するたびに new する言語なんて遅くてやってられねえぞ
386:デフォルトの名無しさん
08/08/31 22:40:10
>>381
def method(*para) は引数がまず配列になるからな
キーワード引数風ハッシュの処理するのもけっこうめんどくさい
なんかうまいライブラリとかないもんかね
387:デフォルトの名無しさん
08/08/31 22:55:49
>>381
def h(a, *b) でいいんじゃないの?
388:デフォルトの名無しさん
08/08/31 23:52:11
>>386
ActiveSupportを使うと、*argsで受けて、options = args.extract_options!
389:デフォルトの名無しさん
08/09/01 01:48:09
feed-normalizerってどうですか?
検索してもほとんど情報が出てこないんですが
390:デフォルトの名無しさん
08/09/01 02:41:35
perlおぼえたあと、
PHPとRubyでは、
どっちを学んだら相性いいですか?
391:デフォルトの名無しさん
08/09/01 03:52:48
>>390
そりゃここじゃなくてperlのスレで聞きなよ
その時は「相性」という言葉を、どういう意味で使ってるのかも添えといた方がいい
392:デフォルトの名無しさん
08/09/01 06:55:48
perlおぼえたら、perlを使うんじゃないの?まずはプログラムやりたいみたいだし、簡単だからVB.NETやるといいよ。
393:デフォルトの名無しさん
08/09/01 08:21:08
んなもんなんのためにPerl覚えたかによると思うが。
趣味だってんなら好きにしろ
394:デフォルトの名無しさん
08/09/01 08:47:10
>>390
WebやりたいならPHP、小物アプリならRuby
本格的アプリならJavaやC#
395:デフォルトの名無しさん
08/09/01 10:32:08
それ、全部VBでいいんでない?
396:デフォルトの名無しさん
08/09/01 10:46:23
全部common lispでできるよ
397:デフォルトの名無しさん
08/09/01 10:58:01
>>390
順番に意味はない。
398:デフォルトの名無しさん
08/09/01 11:11:56
>>394
ぜんぼ覚えるの大変だなw
C++は習得できなかったからないの?
JRubyがあるから、今のうちにJavaかな。
399:デフォルトの名無しさん
08/09/01 19:05:30
サーバーサイドC++ってごっつすぎだろ
400:デフォルトの名無しさん
08/09/01 20:47:46
>>390
結論からいうとPythonを覚ればそれでなんでも出来る。
軽くて速くてソースが美しいPython。文書も豊富でライブラリも充実してるPython。
仕様はかっちり、世界規模で開発されているPython(Google, MS, Yahoo!, etc.)
オープンソース系ならほぼもうPythonが事実上の標準言語になってる。
日本だけで閉じこもってて、遅くてソースが汚くて開発もいい加減なRubyとかやっても
無駄に終わる可能性があるよ
401:デフォルトの名無しさん
08/09/01 21:36:57
ソースが美しい・汚いとは、例えばどういうソースのことだ
402:デフォルトの名無しさん
08/09/01 21:39:56
読み難い、読み辛いって読み替えればいいんじゃね?
403:デフォルトの名無しさん
08/09/01 21:54:31
どうしても分からないことがあります。
hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] << a
end
end
hash # => {}
でhashに値が入らないのは何故でしょうか?
{:a=>[1,2,3], :b=>[1,2,3], :c=>[1,2,3]}
となってほしいのですが。一方、下はOKです。
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
404:デフォルトの名無しさん
08/09/01 21:57:34
あーしまった。変数書き間違った。訂正します。
hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] << a
end
end
hash # => {}
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
???
405:デフォルトの名無しさん
08/09/01 21:59:23
読みやすいかどうかなら、記号が多いよりもJavaやC#のように長いメソッド名のほうが読みやすいんじゃないの?
もう、パイソンと関係ないけおd
406:デフォルトの名無しさん
08/09/01 22:08:05
[:a, :b, :c]
は何か意味あるの?
407:デフォルトの名無しさん
08/09/01 22:10:44
>>406
ないです。単にシンボルの方がタイプ数が少ないという理由です。
408:デフォルトの名無しさん
08/09/01 22:13:16
>>404
カッコ付きのHash.newは、該当キーがなかったときにその引数オブジェクト
自体を返す。つまり、
x = []
hash = Hash.new(x)
each/each
if hash.has_key?(b)
hash[b] << a # ここには絶対来ない
else
x << a
end
end/end
みたいな感じ。
たぶんやりたいことは、ブロック付きのnewで
hash = Hash.new {|h, k| h[k] = [] }
じゃないかな。該当キーがなかったときに、
新しく空の配列を作って hash に代入する。
409:403
08/09/01 22:29:06
> たぶんやりたいことは、ブロック付きのnewで
> hash = Hash.new {|h, k| h[k] = [] }
> じゃないかな。該当キーがなかったときに、
> 新しく空の配列を作って hash に代入する。
その通りなんですが、
x = Hash.new([])
x[:a] << 1
x[:b] << 2
x # => [1, 2]
これは大丈夫なのに、何でだろうと思って。
410:404
08/09/01 22:32:02
あーすみません。また書き間違った上に、なんか根本的に誤解してる>自分
出直してきます。
411:デフォルトの名無しさん
08/09/01 22:41:51
>>407
タイプ数が少ないって何のこと?
412:デフォルトの名無しさん
08/09/01 22:42:16
x = Hash.new([]) # だいたい x = Hash.new; x.default = [] に同義
>> x[:a] << 1
=> [1]
>> x
=> {}
>> x[:b] << 2
=> [1, 2]
>> x
=> {}
>> x.default
=> [1, 2]
413:403
08/09/01 22:50:04
ほんといろいろすみません。
>411
文字列じゃなくシンボルを使った理由を聞かれているものと勘違いしました。
>412
なるほどやっと分かりました。
というか、探したらちゃんと書いてあった・・・orz
URLリンク(www.ruby-lang.org)
414:デフォルトの名無しさん
08/09/01 23:22:22
>>413
rubyのhtml help入れれ
415:デフォルトの名無しさん
08/09/02 03:07:58
パイトンはやったことないからわからんなぁ。
416:デフォルトの名無しさん
08/09/02 17:09:52
Loggerでログファイルを毎日Rotateさせようと思ったんだけど
>> require "logger"
=> true
>> log = Logger.new("foo.log", 'dairy')
=> #<Logger:0x33fe50 ...以下略>
>> log.info "foo"
=> true
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
ログを出力しようとするたびに ShiftingError が出るんだけどこれって何の冗談?
うちの環境は↓
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
417:デフォルトの名無しさん
08/09/02 17:11:21
infoってメソッド名がおかしいんだよ
writeに改名しろ
418:416
08/09/02 17:17:46
logger.rbを見たら 'dairy' じゃなくて 'daily' だった.あー恥ずかしい.
しかし引数間違っててもスルーって不親切だよなあ
419:デフォルトの名無しさん
08/09/02 17:21:31
ruby厨きめえwwwwww
これからはpythonの時代だろks
うぇwっうぇwwwww
420:デフォルトの名無しさん
08/09/02 17:33:45
Rubyだけ使ってるとでも思ってるのかね
421:デフォルトの名無しさん
08/09/02 17:34:42
煽っているようでちゃんとsageているところに
育ちの良さがにじみ出てしまっているな
422:デフォルトの名無しさん
08/09/02 17:37:31
>>420
そうじゃないと都合悪すぎるだろ
やろうと思えば複数言語の比較検討ができるとか断じてあってはならない
423:デフォルトの名無しさん
08/09/02 17:41:19
釣れますか?
424:デフォルトの名無しさん
08/09/02 17:47:22
結局rubyなんてwebProgでしかないし、pythonのほうが将来がある
425:デフォルトの名無しさん
08/09/02 18:27:19
ルビみたいにメインストリームの横に張り付いているちっぽけな貧乳は今後成長する可能性も2.3%くらいあるが、
醜く大きくなったおっぱいそんは後は垂れるだけ。
426:デフォルトの名無しさん
08/09/02 18:43:07
だっておwwwwww
427:デフォルトの名無しさん
08/09/02 18:57:20
どうでもいいけど最近貧乳の良さが分かってきた
428:デフォルトの名無しさん
08/09/02 20:16:15
俺は最初から貧乳が好き
429:デフォルトの名無しさん
08/09/02 20:36:26
もともと巨乳好きだが最近貧乳にも興味あり
430:デフォルトの名無しさん
08/09/02 21:07:59
何つうか、適材適所を知らない奴はPythonあたりでもダメなんだろうな。
431:デフォルトの名無しさん
08/09/02 21:13:21
Pythonの威を借るDQN
432:デフォルトの名無しさん
08/09/02 21:31:36
虎ってか蛇か
433:デフォルトの名無しさん
08/09/02 22:32:23
恋するプログラムを読み始めたんだけど、2-2最初のサンプルからつまづいた・・・
「ワンツー」と日本語が入力できないんですが、どうしたらいいですか?
半角英数しか使えないよ
434:デフォルトの名無しさん
08/09/02 22:35:35
コマンドプロンプトならAltを押しながら、半/全キーだったかな
435:デフォルトの名無しさん
08/09/02 23:04:50
企業や学校の場合はconime対策でそもそも日本語入力機能が無効にされてることも稀にあるので注意だ
ちなみにタイトルバーを右クリックすると編集用のショートカットキーコンボがわかるので利用するといい
436:デフォルトの名無しさん
08/09/03 00:17:02
下手に最初から日本語使って予期せぬエラー増やすよりも
慣れるまでは全部半角英数でやるのが無難
437:デフォルトの名無しさん
08/09/03 00:17:24
>434
ありがとう。解決しました。
>435
よくわからない。
範囲指定(K)ってあるけどシフト、ctrl、altと組み合わせても発動しないし
というかセーブする方法がまだ出てきてなくてこの先生きのこれるか心配です
438:デフォルトの名無しさん
08/09/03 00:20:43
俺たちの先生は、キノコだったのか!!
439:デフォルトの名無しさん
08/09/03 01:09:46
>>437
えーとだな、コマンドプロンプト(DOSプロンプト)は、Alt+スペース で右クリックメニューの1階層目が開く
で、Eを(単独で)押すと編集メニューがさらに開いて、貼り付けとかが選べる
たとえば、クリップボードにあるURLを貼り付けたい場合は「Alt+スペース、E、P」の順にリズミカルに押せばいい
で、範囲選択だが、これは「Shift+方向キー」でコピー元の範囲選択を矩形で開始できる機能だ
コピーしたい部分を選択し終わったらEnterを押すと、それまでの反転部分が改行つきでクリップボードに入る
ぶっちゃけ使用頻度は高くないし、マウスで範囲を選んでEnterすれば同じことなのでありがたみも薄い
440:デフォルトの名無しさん
08/09/03 01:21:06
rubyのCPANはどこにあるの?
441:デフォルトの名無しさん
08/09/03 01:27:58
CPANはPerlの(以下略
Rubyforgeをgemコマンドで利用するのがデファクトスタンダード
CPANほどには洗練されていないし、CPANほどには無闇大量に登録されてない(そもそも少ないというかPerlが異常)
Windows版Rubyなら、最初からgemコマンドが使えたはず
LinuxとかBSDとかの場合はrubygemsのような名前のパッケージがあると思われ
442:デフォルトの名無しさん
08/09/03 01:31:52
サイトとしては存在してないってこと?
ブラウザでみれるようなの。
443:デフォルトの名無しさん
08/09/03 01:32:39
ああサイトはあるけど
利用の形態はgemコマンドということね。
444:デフォルトの名無しさん
08/09/03 01:33:57
>>442
URLリンク(rubyforge.org)
# rubyforgeでぐぐれ、と書こうとしたが、ぐぐったらトップが出てこなかった。
445:デフォルトの名無しさん
08/09/03 09:10:12
拡張ライブラリを作ろうと思ったんだけど
解説してるサイトに書いてある「$ make」の意味が分かりません。
446:デフォルトの名無しさん
08/09/03 09:16:33
>>437
xyzzyでshell起動すると、エディタ画面でコマンドプロンプトが使えるよ。
Alt+x → 'shell' と打ってリターン
447:デフォルトの名無しさん
08/09/03 10:15:09
>>445
makeコマンドを実行しろってこと。
448:デフォルトの名無しさん
08/09/03 11:06:53
まあCとRubyでのプログラミングはできるわけだし、それくらいの推測はできて欲しいよな
make は UNIX コマンドだ(語弊あり)
UNIXやらLinuxやらにはたいてい入ってるが、Windowsには普通入ってない
make だけをどっかからインストールするといいが、
プロンプトが $ であるところから見て、そのサイトはWindows考慮してないんじゃないかとも思う
449:デフォルトの名無しさん
08/09/03 11:20:50
まぁ、要するに仮想マシンかなんかにLinux(語弊あり)を入れた方がいいってこった
450:デフォルトの名無しさん
08/09/03 11:22:39
Linux以外でRuby使う奴って馬鹿だろ?
451:デフォルトの名無しさん
08/09/03 11:27:27
ううん そうでもないよ
452:デフォルトの名無しさん
08/09/03 13:28:27
FreeBSDで使ってますが何か?
453:デフォルトの名無しさん
08/09/03 13:54:40
BSDは基本でしょwww
454:デフォルトの名無しさん
08/09/03 14:08:53
>>453
kwsk
455:デフォルトの名無しさん
08/09/03 14:12:44
いや、今はMacOSバージョンXでしょ。
実質的にBSDの商用GUIバージョンのヂストリブーションだしwww
MacOSXはINTELもあったんじゃなかったか?
456:デフォルトの名無しさん
08/09/03 14:17:51
つまんねえ
457:デフォルトの名無しさん
08/09/03 14:18:01
本物のハッカーはソラリスじゃないの?x86あるし無料だし。
FreeBSDの設定とかよりソラリスをHPで紹介してるのとか凄くない?
458:デフォルトの名無しさん
08/09/03 14:30:33
ブリヂストン?
459:デフォルトの名無しさん
08/09/03 14:30:35
>>456
変なの居ついたよな
当人はスレに参加しているつもりなのだろう
460:デフォルトの名無しさん
08/09/03 14:58:43
そうやって排他的だとperlみたいにコミュニティーが宗教っぽくになっていくと思わないか?
461:デフォルトの名無しさん
08/09/03 15:01:31
rubyはもともとモルモン教なんだが?
あの貧困層の宗教で有名なモルモン教だからrubyの洗脳はperlよりもひどいよ
462:デフォルトの名無しさん
08/09/03 15:02:44
実際のところ、モルモンも創価学会とドッコイだろww
463:デフォルトの名無しさん
08/09/03 15:11:24
perlと比べれば、rubyは後発だけあって現状の要求をみたしている言語としての出来はいいんだけどな。
464:デフォルトの名無しさん
08/09/03 15:21:48
>>460
どっちかってえと公平に受け入れよとわめくほうが宗教っぽい
465:デフォルトの名無しさん
08/09/03 15:35:52
惑星ソラリスは破壊されたんじゃ?
466:デフォルトの名無しさん
08/09/03 17:56:58
おメーラいい加減にせえよ
スレ違いにもほどがあるw
467:デフォルトの名無しさん
08/09/03 20:40:34
すいまメ~ン!
468:デフォルトの名無しさん
08/09/03 21:18:20
SonOS 4.1あたりまでの人にとってはSolarisはまがい物なんじゃなかろうか。
469:デフォルトの名無しさん
08/09/03 21:40:09
>>900までこのスレはOSの話!
Rubyは別でどうぞ(違
470:デフォルトの名無しさん
08/09/03 22:57:18
rubyでExcelを読み込みたいのですが、日本語が化けてしまいます
かなり調べてみたんですが、何が悪いのかわからないです。。不適切な箇所を指摘してもらえないでしょうか
require 'win32ole'
class Excel_test2
def getExcel
xl = WIN32OLE.new('Excel.Application')
book = xl.Workbooks.Open(ファイルの絶対パス)
begin
book.Worksheets.each do |sheet|
sheet.UsedRange.Rows.each do |row|
record = []
row.Columns.each do |cell|
record << cell.Value
end
puts record.join(",")
end
end
ensure
book.Close
xl.Quit
end
end
Excel_test2.new().getExcel
End
Rubyのバージョンは1.8.6
WIN32OLEのバージョンは0.7.2と出てました
471:デフォルトの名無しさん
08/09/03 23:10:11
日本語が化けるだけならwin32oleはたぶん関係ないな
472:デフォルトの名無しさん
08/09/03 23:18:31
「Excelを読み込む」という表現に危機感を感じる
ダブルクリックするとExcelが起動するからExcelだと思ってる人が日本中に10万人くらいいるがその類かもしれん
csvファイルやtsvファイルも読めるわけで、端末文字エンコードとあってないファイルの場合は当然化けるぞ
473:デフォルトの名無しさん
08/09/03 23:29:19
どんな日本語がどう化けたか書きなさいって
474:デフォルトの名無しさん
08/09/03 23:43:56
>>473
発生日 名称 マグニチュード 死者・不明者 死者の有無
↓
, , } O j ` [ h, ҁE s , ҂̗L
こういう感じです
475:デフォルトの名無しさん
08/09/03 23:51:50
そうして>>471-472を無視する
476:デフォルトの名無しさん
08/09/03 23:54:21
単に文字エンコードやExcelが扱うファイルの知識がないんだろう
Ruby以前の問題だな
win23oleはRubyほとんど関係なくて、Windowsプログラミングの知識が大量に要るぞ
477:デフォルトの名無しさん
08/09/03 23:59:14
なんにも知らないくせにw
478:デフォルトの名無しさん
08/09/04 00:03:00
煽ったってこれ以上は別に出ないぞ
479:デフォルトの名無しさん
08/09/04 00:04:04
WIN32OLE.codepageを変えてみるとか
480:デフォルトの名無しさん
08/09/04 00:10:51
読めてる以上、文字コードだけの問題だしなあ
まさか本当にUTF-8のCSVファイルだとかそんなオチだったり
481:デフォルトの名無しさん
08/09/04 00:11:18
FreeBSD使ってる人は、やっぱりSunOSも知ってる人なんじゃないの?
その流れでソラリスに辿り着くか、派手好きはMacOSXかなってことなんだけど。
デビアンはイマイチゴチャゴチャだし、オープンで英語得意なら、やっぱFreeBSDのままかなw
そういえば、物理学科のハッカー先生元気かな…
482:デフォルトの名無しさん
08/09/04 00:15:58
MacやLinuxは女々しい奴か宗教家ぶれの奴しかいないけど、BSDは本物のハッカーしかいない。
別板にある犬小屋スレ見ればわかるだろw
windoはエサ待ち状態のサルばかりか?
483:デフォルトの名無しさん
08/09/04 00:18:41
とりあえず Excel 2007 で直接日本語を入力して xls および xlsx 両方で保存した上で
>>470 をコマンドプロンプトからそれぞれ実行したが、特に文字化けはしなかった。
cell.Value から返るのは Shift_JIS だから、あとは表示環境の問題かと。
484:デフォルトの名無しさん
08/09/04 00:20:46
>>479
WIN32OLE.codepageをUTF-8にしてみたら正常に出力されました
ありがとうございます
文字コードが正直さっぱりわかってないのでもっと勉強します。。
485:デフォルトの名無しさん
08/09/04 00:24:46
スクリプトがUTF-8なのかね
486:デフォルトの名無しさん
08/09/04 00:30:54
おお、勘でアドバイスしたら当たったぜ
487:デフォルトの名無しさん
08/09/04 01:29:06
エスパー覚醒おめ
488:デフォルトの名無しさん
08/09/04 08:26:31
>>481
BSDが染みついた人ならソラリス(2以降)にたどり着いたらUターンするだろJK
489:デフォルトの名無しさん
08/09/04 09:09:46
今の時代x86で十分だし、そうするとwinかbsd/linuxでしょ。
3Dの凄い計算とか気象予測みたいなのが必要なわけでもないし。
ただ、PCを部屋に5台以上おくとクーラーとか空調もやんないといけなくなるし、PC技能とは別問題に遭遇する。
490:デフォルトの名無しさん
08/09/04 09:14:26
じじいは隔離スレにカエレ
491:デフォルトの名無しさん
08/09/04 09:55:38
>>490
当人はスレに参加しているつもりなのだろう
492:デフォルトの名無しさん
08/09/04 10:06:20
rubyはモルモンじゃなくて、エホバじゃなかったか?
あの、デザインパターン本のキリスト教の人と同じで。
493:デフォルトの名無しさん
08/09/04 10:07:57
モルモンです。
494:デフォルトの名無しさん
08/09/04 10:26:08
結城さんはモルモンなの?
495:デフォルトの名無しさん
08/09/04 10:26:38
プロテスタントのクリスチャンというのが怪しいよな
日本でカトリック以外なんてエホバか統一教会だし
496:デフォルトの名無しさん
08/09/04 12:21:27
rubyは型の宣言は不要なんですけど、実際はメソッド呼び出した後、何の型が戻るのか分からないと
次の操作が出来ないので、なんだかやりにくくないですか?
特に正規表現で引数とか戻り値がいろいろあるので、結局はOOだと型の明示が必要なのかなと思っちゃいます。エラーでも型の注意が入るし。
とにかく =~ とか $~ の旧世代のレガシーはもうOOじゃないし、廃止して欲しい。
497:デフォルトの名無しさん
08/09/04 12:22:13
と思いませんか?
498:デフォルトの名無しさん
08/09/04 12:24:23
javaでも使ってろよ
499:デフォルトの名無しさん
08/09/04 12:29:09
配列に正規表現がマッチするわけないし
数値に正規表現がマッチするのは変だろ
result = str.scan(re) でいちいち配列の配列が返ってくるのはなんか違わね? というのは確かに連綿と指摘はあるが
まあそれなら re.match(str) で MatchData オブジェクト使えばいいんじゃねという話ではある
500:デフォルトの名無しさん
08/09/04 12:37:48
その辺りはマニュアルにしつこく書いとくと、日本人ならrubyに流れるんじゃないですか?
=~ [] MatchData String Regexp とかどれなのか覚えて整理するのに1日使ったんで。
perlよりはまとまってるみたいですけど、perl awkのしがらみでもあるんでしょうかw
触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
501:デフォルトの名無しさん
08/09/04 12:39:24
というか、連綿とかムズカシイ言葉知ってますねww
502:デフォルトの名無しさん
08/09/04 12:54:31
開発者たちは、数学知ってるんだろうし、多価返却はダメだってことを分かってると思うんですけど。
既存の=~ $~ とか、class Regexpはそのままで、新規にruby regexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
あれこれクラスにまたがっていて、まったく意味不明でした。
$~はスレッド・ローカルみたいですけど、OO的というかスレッド的に馴染まないというかどうかと…
503:デフォルトの名無しさん
08/09/04 13:03:28
>>502
お前実際にはスクリプト書いてないだろ
504:498
08/09/04 13:05:00
>>502
っ【ソースコード】
っ【直談判】
っ【>>499】
なんかスレのターゲットから超えてる気がするw
505:デフォルトの名無しさん
08/09/04 13:09:34
>>503,504
いや、別に初心者じゃないんでw
506:デフォルトの名無しさん
08/09/04 13:14:11
以上、壮大な釣りでした。
507:デフォルトの名無しさん
08/09/04 13:20:42
あと意味不明だったのは、
p => Object.inspect
puts => to_a => to_s
print / printf => to_s
だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
ほとんど
for line in file : p line end
while line=file.gets : p line.chomp!.strip! end
しか使ってませんよ。結局やってることはOOじゃないし、eachとかいちいちAPIみるの面倒でしょw
508:デフォルトの名無しさん
08/09/04 13:34:36
リテラルも多いし、返却値もいくつものクラスにまたがっていて、さらにデバグの出力先もいろいろあって、忙しい言語ですね。
これでも十分複雑なんで、半年も触らないときっと忘れちゃいますよ。
javascriptの方はプロトタイプ言語で少し概念が違うんですけど、ほぼジャバと同じだし半年しても忘れることはないでしょうな。
OOとかクラスについてはjava使えるんで、regexpは、jsでIO使えるならjsでいいかなってのが感想ですw
509:デフォルトの名無しさん
08/09/04 13:56:38
じゃあJavaScriptスレに行ってください。
このスレは2度と見る必要ないですよね?
510:デフォルトの名無しさん
08/09/04 14:20:33
本屋で見かけた初めてのRubyが第3刷だった件について
511:デフォルトの名無しさん
08/09/04 15:00:02
よい本が売れるのは問題ない
店によっては入った週に売り切れたりするのは立ち読みしにくいのでやめてほしい
512:デフォルトの名無しさん
08/09/04 19:22:54
>>500
>=~[]MatchDataStringRegexpとかどれなのか覚えて整理するのに1日使ったんで。
StringとRegexpをマッチさせたらMatchDataが作成される、というだけで、
何も難しくないと思うんだけど、どのへんがわかりにくかったですか?
>触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
Javaもjava.lang.Stringとjava.util.regex.Patternとjava.util.regex.Matcherを使っているから同じだと思うんですけど、どこが違うと思いますか?
>>502
>既存の=~$~とか、classRegexpはそのままで、新規にrubyregexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
これは意味がよくわからないんですけど、どういうクラスとAPIを提案しているのか、もっと詳しく説明してみてください。
もしかしたら、すごくいいクラス設計が提案されているかもしれないので。
よろしくお願いします。
513:デフォルトの名無しさん
08/09/04 19:28:04
>>507
>あと意味不明だったのは、
>p=>Object.inspect
>puts=>to_a=>to_s
>print/printf=>to_s
>
>だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
この書き込みのほうが意味不明。どれもマニュアルにそのまんま書いてあるんだけど、マニュアルをどうして欲しいの?
514:デフォルトの名無しさん
08/09/05 01:20:25
pack/unpack の指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして
意味を含めてくれませんか?パブリックなライブラリなわけで、自分仕様のライブラリじゃないでしょw
パールのしがらみをもったままなんでしょうけど、このままだと第2のパールに成り下がるだけじゃないですかね。
regexpは別言語でもできるんですけど、ネイティブへのアクセスは、POSIXの機能が結構使えるルビーが(グルーとしては)一番かなって思うんですけど、この辺りどうでしょうか?
515:デフォルトの名無しさん
08/09/05 01:22:10
それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。
ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
516:デフォルトの名無しさん
08/09/05 01:22:11
>>514
お前実際にはスクリプト書いてないだろ
マニュアル逐次読みしながら論う釣りは帰れ
517:デフォルトの名無しさん
08/09/05 01:31:15
自 分 で 作 れ
518:デフォルトの名無しさん
08/09/05 01:48:04
>>516-517
コードを書こうとして、packの機能を使おうとしたら「複雑すぎw」てことじゃないの?まあ、サルにはこの気持ちは一生理解できないんだろうけどw
519:デフォルトの名無しさん
08/09/05 01:53:41
pack/unpack は機能が豊富だから独立したクラスにして欲しい。1.9のfutureで頼んます。
520:デフォルトの名無しさん
08/09/05 01:58:07
packはあれはUNIXそのままが一番わかりやすいしなあ
正規表現が全くオブジェクト指向じゃないとか
sprintfやstrftimeのフォーマット文字列が意味不明だと文句言われるのと
割と似ていると思う
521:デフォルトの名無しさん
08/09/05 01:58:09
>Ruby 1.9.1の仕様は9月25日で凍結されます
急げ
522:デフォルトの名無しさん
08/09/05 02:10:16
急いでないんで、1.9.8まで待ちますw
printfはインタプリタなんで、packの引数による機能指定と、全然関係ないと思うんですけど?
APIも仕様も熟読しないような、ナンチャッテさんはその程度ですかw
523:デフォルトの名無しさん
08/09/05 02:16:40
>>520
るびまで青木さんが、
packの書式なんて誰も覚えてねーよバーカバーカとか書いた上で
自前で簡単なDSLを定義してたようなw
524:デフォルトの名無しさん
08/09/05 02:24:10
なんか、rubyが旧世代のダメ出しされてるってかんじーww
525:デフォルトの名無しさん
08/09/05 02:41:14
>printfはインタプリタ
詳しく説明願います
526:デフォルトの名無しさん
08/09/05 02:45:10
あなたが勉強不足なだけなんでしょうな。
527:デフォルトの名無しさん
08/09/05 02:55:19
初心者スレで粋がるのがかわいいじゃないか
528:デフォルトの名無しさん
08/09/05 02:58:22
仕様に対する不満はスレ違いだ。本スレかアンチスレにでも行け。
つーか、メーリングリストで言えよ…
529:デフォルトの名無しさん
08/09/05 02:59:55
メーリングは、「あーでも、こーでも」いってて皆でモルモンしてるじゃんw
530:デフォルトの名無しさん
08/09/05 03:03:46
API君の日本語が意味わからなくて、対応に困ります
531:デフォルトの名無しさん
08/09/05 03:05:22
本スレってあそこか。
業界通っぽくしてるサルばかりじゃないの?
所詮下請けにかわりないし、愚痴ってるだけで、BSDじゃないけどサル小屋かなww
532:デフォルトの名無しさん
08/09/05 03:06:15
日本語でおk
533:デフォルトの名無しさん
08/09/05 03:10:37
>>529-532
はいはい。IPAが男女共同参画会議に出席するようですよ。
534:デフォルトの名無しさん
08/09/05 03:12:38
ボクちゃんは賢いですねー
おりこうさんだからv8でもいじって、遊んでましょーね
535:デフォルトの名無しさん
08/09/05 03:15:12
>>527
そうやって羨ましがってばかりいないで、少しはプログラミング言語 Ruby に貢献したらどうよ?
どうせおまえみたいな無能は、指くわえてみてるだけじゃないの??
536:デフォルトの名無しさん
08/09/05 03:18:12
IPAは税金ばっかり使って、結局フォントだけが成果物じゃん。もう国がサポートすることもないし、解散でいいよ
537:デフォルトの名無しさん
08/09/05 03:19:21
誰が何の話してるかわけわからんぞ
538:デフォルトの名無しさん
08/09/05 03:20:12
はいはい。ここは初心者スレなんで、愚痴は「サル小屋」でやってくださいましww
539:デフォルトの名無しさん
08/09/05 03:43:25
あのー、IPAでいいんで、漢字コンソール(KONのクローン)作ってもらえまんせか?
konが今となっては機能不足なので、freebsd入れずにwindows使う羽目になってるんですが。
英語には不自由はしてないんですけど、クライアントの送信とかログとかも含めて開いたファイルの中身が文字化けしたら何のファイルなのかさっぱりなんで、漢字端末よろしくです。
540:デフォルトの名無しさん
08/09/05 04:38:04
ジャバとかルビーとかパールとかカタカナ表記が流行ってるんですか
541:デフォルトの名無しさん
08/09/05 04:43:48
>>539
使ったことないけどjfbtermとか
542:デフォルトの名無しさん
08/09/05 12:09:44
jfbtermはポーツにあるみたい
543:デフォルトの名無しさん
08/09/05 12:19:21
konって何年前だよ。ほんと生きた化石みたいなやつだな。
544:デフォルトの名無しさん
08/09/05 12:21:30
konの表示は当時からしょぼかった・・・やっぱ資本の差かな・・・フォントの次はIPAさん、俺からも頼のんます
545:デフォルトの名無しさん
08/09/05 18:11:37
おっさんは引き際というものを知らんな
546:デフォルトの名無しさん
08/09/05 19:58:37
カタカナ表記で書いてる奴は基本的に釣りでしょ。
547:デフォルトの名無しさん
08/09/05 22:35:11
ルビー
548:デフォルトの名無しさん
08/09/06 00:30:31
>>514
>pack/unpackの指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして
>意味を含めてくれませんか?
これは無理です。printf()の書式とおなじようなものだと考えてください。
あなたがprintf()の書式にも文句言う人だとどうしようもないですが。。。
>>515
>それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。
どうも正規表現あたりのクラス設計に不満があるようですが、どういう設計をお望みでしょうか。
String, Regexp, MatchData の3つがあるのは Javaでも同じですが、どこがわかりにくいですか?またどう変更してほしいのですか?
>ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
言っていることが意味不明なので、わかりやすく書き直してください。
549:デフォルトの名無しさん
08/09/06 04:01:49
なんだこいつ?新手の荒らしか?
550:デフォルトの名無しさん
08/09/06 04:29:03
require/includeでクラスやモジュールを使いたいのですが、
ruby "-I c:\myruby\mylib" source.rb
とやってソース内部でrequire/includeとやってもロードされてないようです。
何が足りないんでしょうか?
551:デフォルトの名無しさん
08/09/06 04:51:35
>>548
おまえが無能だって事はよく分かった。
552:デフォルトの名無しさん
08/09/06 05:03:00
頭が良いが性格は悪い、というキャラを目指す奴の大半は
どっちも悪いキャラに終わるよな。
553:デフォルトの名無しさん
08/09/06 05:25:14
>>552
どれとどれが「どっちも」ってのなんだ?
これだけで、おまえが低学歴なのがよーく分かるw
554:デフォルトの名無しさん
08/09/06 05:45:12
目の前の文章の意味すらわからないのに、
目に見えない色んなことは次々と「わかっちゃう」のも
特徴の一つだね。
555:デフォルトの名無しさん
08/09/06 06:41:29
低学歴は夜間の大学を受験したらどうだ?学歴でバカにされるの嫌だろw
556:デフォルトの名無しさん
08/09/06 08:27:04
ロジックとかは経験でカバーできます。
557:デフォルトの名無しさん
08/09/06 08:34:40
>>552 カンベとかルビキチとか。
558:デフォルトの名無しさん
08/09/06 08:57:57
>>556
そうすると、経験でカバーできないのはなんでしょうか?
559:デフォルトの名無しさん
08/09/06 10:44:41
>>550
サーチパスにC:¥myrubyを追加して、そこからmylibをrequireするなら、
ruby -I C:¥myruby -r mylib source.rb
560:デフォルトの名無しさん
08/09/06 11:04:42
>>550
バックスラッシュは直後の文字をエスケープするから、
"c:\myruby\mylib" は c : \m y r u b y \m y l i b と解釈される
ruby -I "c:/myruby/mylib" source.rb
または
ruby -I "c:\\myruby\\mylib" source.rb
で動作するはずだ
スクリプト開始時の require 前に $LOAD_PATH 配列に "c:/myruby/mylib" という文字列を要素として追加してもよい
なるべく配列の先頭に入れるといいと思う
561:デフォルトの名無しさん
08/09/06 11:22:07
ご親切にありがとうございます。
$: . push ("c:/myruby") ;
としてるんですけど、ソース1行目に、
#! ruby -I "c:/myruby"
だと無理みたいです。
それと、ruby -help でみると、-Idirectory -rlib -Kcode とかなっていて、空白いるのかいらないのか不明だし、なんかヘルプの方が混乱しているみたいです。
公式レファレンスの説明も1行あるかないかだし、やる気なくなりました。
BSDのインストールと日本語化が困難でやる気なくなって、vine linuxで済ますアレと同じ感覚ですw
あと、module Mymo とinclude/require関数とかも日本語だと説明不足で英語サイトだと著者の思想も込みで説明が詳しすぎて、結局モルモン思想はウザくてやる気が起きません。
rubyのコミュニティーは、rubyプラットフォームをツールとして広める気があるんのか疑っちゃいますw
562:デフォルトの名無しさん
08/09/06 11:27:24
関数とカッコの前後に空白どうとか言う警告を削除してもらえませんか?
obj . push ( a , b )
じゃ言語としてダメでありサポートしないのか、それともいいのかハッキリしてもらえませんかねー
こんなところまでモルモン思想の押し付けをワーニングするのはもう止めませんか?ウザいんですけどw
563:デフォルトの名無しさん
08/09/06 11:34:32
>>561
スクリプト1行目のShebang行は規則に則った単なる文字列だ
シェルで実行されるわけではない
シェルと同じ動作をすることを期待されても困る
564:デフォルトの名無しさん
08/09/06 11:57:30
お前らが優しいのは十分わかったから、いい加減かまってちゃんの相手をするのはやめてくれ
565:デフォルトの名無しさん
08/09/06 12:02:05
ライブラリの設計が悪いんだろw
566:デフォルトの名無しさん
08/09/06 13:12:43
ここんとこ毎日初心者スレにくるところをみると、どこでも相手にされてないようだな。
567:デフォルトの名無しさん
08/09/06 13:15:47
というよりも、戻り値の型で
p nil==false # false
は勘弁して欲しいけど。
このスレのレベルだと、どうしてなのか分からないんだろうと思う。
568:デフォルトの名無しさん
08/09/06 13:17:36
ルビーは犯罪者も使ってるんですよ!刑務所の犯罪者たちにエサを上げないで下さい!!
569:デフォルトの名無しさん
08/09/06 13:22:22
本スレのITドカタたちよりは技術的な質問が多いな。あのスレはカスばっかりでもうダメだろ…
570:デフォルトの名無しさん
08/09/06 13:25:40
たしか…
571:デフォルトの名無しさん
08/09/06 13:40:21
>>566
おまえもスレに張り付いて、いったい何やってんだ?仕事もしてないんだろw
572:デフォルトの名無しさん
08/09/06 13:46:21
それが罵り言葉になる環境にいるなんて可哀想
573:デフォルトの名無しさん
08/09/06 13:46:56
土方は蔑称だから使っちゃダメだよ。
574:デフォルトの名無しさん
08/09/06 13:47:30
571は今日が土日だということを理解できていないらしい
575:デフォルトの名無しさん
08/09/06 13:47:49
宇宙大王の言い分
このスレ: 低学歴・無能の集まりなので分かってくれない
ML: モルモンなので分かってくれない
リアル: 大人は分かってくれない
アドバイス
あなたを分かってあげられるのはあなただけ。自分を大切にしてあげて。
576:デフォルトの名無しさん
08/09/06 13:52:49
はいはい。もう分かったから死ね
577:デフォルトの名無しさん
08/09/06 13:56:57
rubyを使うようなのはwebクーチャーとか言う職業の人たち、つまりITドカタでしょwwww
たーまにbsdとかも使ってるシステムの奥の方の人も居るけどwwwww
2chでIPAの愚痴を言うようじゃ、仕事も大したことやってないし、せいぜい雑用係のカス野郎ってことが良く分かるwwwwwwwwカスw
578:デフォルトの名無しさん
08/09/06 13:58:32
いや、IPAは無駄だろ。除法処理技術者の資格をもっていても、もっていなくても、別に金にならないし。
579:デフォルトの名無しさん
08/09/06 14:14:12
WEB開発とか雑魚だろ。しかも文系でどこにも就職出来なかったような雑魚だしな。
べつにrubyのCソースを追いかけてるわけでもないし、なんか生意気な奴が多いようだけど、雑魚だろw
いちど、みっちりCをやって、GCのソースとか見てみたらどうよ?雑魚ちゃんww
580:デフォルトの名無しさん
08/09/06 14:16:05
そんな雑魚相手に弱いものいじめしなくても…彼らは雑魚なりに一所懸命生きてるんだからさ……
581:デフォルトの名無しさん
08/09/06 14:19:16
>>340
いやいや、デンターシステマ超極細毛(かため)以外認めんぞw
582:デフォルトの名無しさん
08/09/06 14:23:01
僕だってれっきとしたWEBクリエーターだ!クリーチャーじゃないぞ!!
583:デフォルトの名無しさん
08/09/06 14:26:09
弱いものいじめ反対!
いつか必ず天罰が下るぞ!!
584:デフォルトの名無しさん
08/09/06 14:37:10
>除法処理技術者
煽りじゃなく「割り算のプロ」っぽくていいな。それ。
585:デフォルトの名無しさん
08/09/06 14:41:13
>>581
君、いつもつまんない
586:デフォルトの名無しさん
08/09/06 18:10:54
s="あい"#sjis
puts s.dump
dump以外に、
”あい”を文字コードの列(配列)にするのと、
その配列から”あい”(SJIS)に戻す方法はどうやるのでしょうか。
587:デフォルトの名無しさん
08/09/06 18:45:25
dumpのどのへんが不満? バックスラッシュが邪魔?
配列にならないところ? 数値が8ビット整数じゃないところ?
588:デフォルトの名無しさん
08/09/06 19:12:45
RUBY_VERSION >= "1.8.7" だったら
[*str.each_byte]
とかかな
589:デフォルトの名無しさん
08/09/06 20:02:53
あのーバイト列(特にバイト配列)からStringにするにはどうするんでしょうか?
packとかは無しですよw
590:デフォルトの名無しさん
08/09/06 20:04:01
dumpは、戻り値がStringなんでArrayじゃないし、たぶん外部用(serialization)じゃないですか?
なので、関数内部のローカルで処理する用途とは少し違います。
とくに、str[k]="あ"というかんじに出来るのないでしょうか?
結局ルビーは、パールと同じで日本語(多言語)対応じゃないしなんか使いにくいのでどうせなら、
jcodeでStringにアドオンなんかしないで組み込みクラスをrubyの方が用意したらどうですか?
class JapaneseString とかかな。
591:デフォルトの名無しさん
08/09/06 20:06:07
str.setJavaneseCharCodePointAt(index, "あ");
APIはこんなところでしょうか。
592:デフォルトの名無しさん
08/09/06 20:14:52
不覚にもJavaneseに吹いた
でも初心者スレを荒らすのは勘弁してね
593:デフォルトの名無しさん
08/09/06 20:20:11
javaを語る人はjavanese
594:デフォルトの名無しさん
08/09/06 20:39:48
いやいや、マジで困ってるんですが…
serializationは、dumpのStringはrubyだとtaint/untaintの腐ったレベルに影響あると思うんでdumpは外部用だと思います。
それでdumpは使えないので、他にsjis, euc, u16, u8とかの一文字をstrに追加できるセッターないですか?
595:デフォルトの名無しさん
08/09/06 20:49:09
matz.dump # ダンプ松本
596:デフォルトの名無しさん
08/09/06 20:58:56
Matzは神ですけど、matz は orz みたく凹んこで反省してるように見えませんか?
597:デフォルトの名無しさん
08/09/06 21:02:05
[*str.bytes]
↑↓
bytes.map{|b| b.chr }.join
だろうか
598:デフォルトの名無しさん
08/09/06 21:44:48
Javaneseってジャワ語という意味だったな
599:デフォルトの名無しさん
08/09/06 21:54:41
str.concatとarr.push使って自分で実装しました。
というか、スクリプトはテキスト(日本語)処理が主要な用途なんで、これぐらい(ライブラリ作成者側が面倒でも)当然用意しておくべきじゃないですか?
>>597
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
なんで無理です。あと、よくわかないんですけど、[*str.each_byte]は間接参照か何かですか?
イテレータとか使うといちいちAPIみないといけなくなって面倒なんで、この程度の処理はwhileで実装です。
というか、こういう処理はwhileで十分あって、関数ポインタやデリゲートの用途じゃあるまいし、イテレーターなんてカッコつけて使うもんじゃないですよw
600:デフォルトの名無しさん
08/09/06 21:57:48
>>589-591, 594
まず目的として何がやりたいのかを説明しろ
そこがわからないと適切なアドバイスもできん
601:600
08/09/06 21:58:56
ごめんね、スルーしなかった俺が悪かった
602:デフォルトの名無しさん
08/09/06 22:01:48
イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
とくにbyteとchar用のsetがないじゃん。
603:デフォルトの名無しさん
08/09/06 22:08:42
1.9使えばいいんじゃね?
604:デフォルトの名無しさん
08/09/06 22:22:14
そろそろ飽きた
605:デフォルトの名無しさん
08/09/06 22:33:11
[*"foo".bytes].map(&:chr).join # => "foo"
なにコレ?
606:デフォルトの名無しさん
08/09/07 02:02:43
>>567
nil に対する比較演算は nil を返してほしい口?
つうか、なんで勘弁してほしいわけ?
607:デフォルトの名無しさん
08/09/07 02:35:21
全てがオブジェクトじゃなくていい派でしょ
608:デフォルトの名無しさん
08/09/07 03:13:47
>>602
>イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
>StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
どこをどう見て、そう判断したんですか。
>といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
>とくにbyteとchar用のsetがないじゃん。
Ruby1.8では、文字列はただのバイト列なので、Javaのように文字単位での扱いはあまり得意じゃありません。
ただ、文字単位で扱わなくても済む場合がほとんどなので、あなたが「1文字ずつ扱って何をしようとしているか」をまず書いてみてください。
きっとだれかが、1文字ずつではない処理方法を提示してくれると思います。
それから、全般的に日本語に不自由されているようですが、もっと人に伝わるような文章を書いてください。
エスパーするにも限度があります。
609:デフォルトの名無しさん
08/09/07 03:25:03
>>606-608
>>564
610:デフォルトの名無しさん
08/09/07 04:00:37
>>608
質問者に、質問し返す人いますが、あなたは少ししつこい。
あなたのプログラミングスタイルと全く違う人もたくさんいるんですけど、あなたは一生Webクリーチャーでいいんで、黙っててくれませんか?
一文字の処理を所望なのに、一文字の処理じゃない方法を提示する必要はないでしょ。
あなたに仕事を任せても、全く仕様を読まないでいつも失敗ばかりしてるんだろうと思うんで、あなたはその辺にいるゴミか何かでしょうか?
とにかくVBとかの方が儲かりますよ。
611:デフォルトの名無しさん
08/09/07 04:10:34
>エスパーするにも限度があります。
>>608を読んでみても、おまえが無能なのがよく分かるな
おまえのエスパーなど誰も期待してないけど?
612:デフォルトの名無しさん
08/09/07 04:13:57
たぶん>>608は低学歴で脳みそ文系ちゃんだから相手しちゃダメ。
いつまでもこのスレに居座っていてみんな迷惑してんだからw
613:デフォルトの名無しさん
08/09/07 05:38:13
>>608
モルモン教に入信したいなら、まずは創価学会を脱退してからですよ。
614:デフォルトの名無しさん
08/09/07 05:45:54
>字単位で扱わなくても済む場合がほとんどなので
split(//)とかで結局文字単位になるんだし、文の前後が矛盾してるじゃん。
こいつは何のことをいってんだ?
それと、Javaは文字単位char[]でなくてStringで処理しますが、知らないことに無駄口しない方がいいんじゃないですか?
日本語の文法から勉強なさった方がいいんじゃないですか。
615:デフォルトの名無しさん
08/09/07 05:55:02
だから文系プログラマーにかまうな。思考盗聴されて頭おかしくされちゃうぞ!
616:デフォルトの名無しさん
08/09/07 06:31:32
思考盗聴か…層化じゃ当然だよな……
617:デフォルトの名無しさん
08/09/07 07:01:15
仕事してんのに一人でも女がいるとホント面倒だよなwww
女は端っこでマンコの手入れでもして、いつでも準備OKにしてればいいんじゃね?
618:デフォルトの名無しさん
08/09/07 08:17:32
>>608
落ち着け
こんな時は冷静にスルーだ
619:デフォルトの名無しさん
08/09/07 09:13:37
さすがにプログラマに女はいないだろw
数学の女、哲学の女、以上にキモイな。
仮に想像したとしても、頭モサモサのフケだらけ、体臭はニンニク臭いなんじゃないの?
そんなキモ女はどこで道を間違っちゃったんだろうな…
620:デフォルトの名無しさん
08/09/07 09:22:41
catch io exception
621:デフォルトの名無しさん
08/09/07 11:31:25
>>617
俺もそう思う。
まず連中は論理的に説明しても理解しない。「できない」じゃなくて「しない」なんだよ。
生意気にも「いいじゃないですか~」とか言ってて許されるとか思ってる。
「俺が上司なんだよ!!!なめんなよ首にすんぞ」
とか思っても労働法違反になるので言わないです、ごめんなさい。
ついて行きたいと思わせる男の魅力が足りないのでしょうね、ごめんなさい。
そういえば、大学時代も「いい人」止まりだったなぁ・・・
付き合ったは良いけど卒業後すぐに分かれたなぁ・・・
一回しかえっちしてないよ・・・ちなみに童貞×処女
622:デフォルトの名無しさん
08/09/07 11:32:56
>>619
と思いたいんですね
623:デフォルトの名無しさん
08/09/07 11:51:51
引数 param で受け取ったものが配列でも「 1個」でも each で同様に回したい、という場合
param.to_a.each do |e|
...
と書くのが単純だったと思うんですが、
warning: default `to_a' will be obsolete
とか生意気で妥当な警告が出ます。
わりと頻繁に使うメソッド内でのことなんですが、どう対処するのが自然ですか?
param = [param] unless param.is_a?(Array)
と書くべきですか?
「このメソッドは配列しか受け取らないので 1個だけのときは事前に hoge([para]) にしろ」
とマニュアルレベルで警告するべきですか?
624:デフォルトの名無しさん
08/09/07 12:11:16
>>623
配列かどうか調べて、配列じゃない場合は配列に入れるという動作が "正しい"
もしくは、マニュアルなどで「配列しか受け付けません」と明記する
[*param].each do |e| とすると文字数減った上に見かけ動作も一緒だが、無駄に穴掘って埋めてる感じが超キモい
これはそもそも
irb> def disp(param); param.to_a.each{|e| puts e }; end
irb> disp('hoge')
hoge
irb> disp(1)
(irb):1: warning: default `to_a' will be obsolete
1
irb> class Integer; def to_a; [self]; end; end
irb> disp(1)
1
ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
配列の要素にしたいのなら、to_a ではなく明示的に配列作ってそこに入れろという話
irb> Time.now
Sun Sep 07 12:01:10 +0900 2008
irb> Time.now.to_a
[14, 1, 12, 7, 9, 2008, 0, 251, false, "JST"]
irb> [Time.now]
[Sun Sep 07 12:01:18 +0900 2008]
625:デフォルトの名無しさん
08/09/07 12:13:26
PGやSEとか頭脳労働なら、女がいるような職場には行きたくないな。
電話オペとか事務とか誰がやっても同じなら男女雇用機会もわかるけど、
女のセンスとか女のやさしさなど、PGやSEにまったく不要で逆にあると面倒なんじゃないか?
受付や事務で雇うならともかく、女をPGやWEBデザインで雇うようなところは資本もないし
金も技能もないベンチャーはすぐ潰れるのがおちw
今のベンチャーの生き残り方法は、創価学会と手を組むか、堀江豚みたく株屋とつるむぐらいしかないんじゃないの?
626:デフォルトの名無しさん
08/09/07 12:13:28
[ param ].flatten(1)
flattenの引数ってどのバージョンからだったかのう。
627:デフォルトの名無しさん
08/09/07 12:15:21
おまいらの妄想には飽きたぜ。
いい加減どっか外にいけ
628:デフォルトの名無しさん
08/09/07 12:22:16
いまでは「Webデザイン」とかかっこ良さそうな臭いがしますが、海外のスクリプト言語
紹介ではJavaScript(とその亜種)の人口は多くPerlなどが続くと紹介されますが、
2008年現在、そのなかにrubyの文字は一度も出てきません。
しょせんrubyは、(にっぽんの)文系 IT ドカタ専用なんです!
犯罪囚人の女も使ってます!
コミュニティーはモルモン教です!
負け組みの人たちが都合よく集まったというところでしょうか…
ライブラリは冗長が多いけど言語の出来はいいんですけどね……
629:デフォルトの名無しさん
08/09/07 12:27:01
言語側がto_a, to_i とか用意しといて下位互換を無くすようなこと一度でもすると、もうそういう言語・ライブラリは信用されないんじゃないか?
OOや継承をなんだと思ってんだ?
>ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
これを公式レファレンスに記載すればよろしい
630:デフォルトの名無しさん
08/09/07 12:35:34
>>626
1.9のどっか
631:デフォルトの名無しさん
08/09/07 12:35:44
確かにruby使ってる人たちがexcel,word出身のナンチャッテばかりだと、そんなやつらと話があうはずないな。
632:デフォルトの名無しさん
08/09/07 12:51:44
excel,wordすらまともにry
633:デフォルトの名無しさん
08/09/07 12:52:10
arr=[11,22,33]
puts *arr
puts &arr
マニュアルみてもないんですが、* & これは演算子ですか?
634:デフォルトの名無しさん
08/09/07 12:55:44
blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45334
からのスレッド参照
635:デフォルトの名無しさん
08/09/07 12:56:58
怪しいソフトハウスは五万とあるが胡散臭いからすぐ分かる。たいてい、そういうところはDQNしかいないし長くても5年で潰れる。どう考えてみても、文系乙だな
636:デフォルトの名無しさん
08/09/07 12:59:12
>>634
演算してるわけじゃないしな
展開記号とでも呼べばいいのかしら
637:デフォルトの名無しさん
08/09/07 13:09:04
* & ですけど、関数引数なら演算子とは呼ばないけど、式文中なので演算子ですよ。
リンク先のMATZ本人はその意味で言ってるんですけど、たぶんこのスレレベルだと理解できないんでしょうね。
やっぱ文系用スクリプトを使うお気軽ルビリストには、その程度の理解度でいいんでしょうか?
638:デフォルトの名無しさん
08/09/07 13:12:42
理解できない人はC言語をみっちりやってくださいなw
639:デフォルトの名無しさん
08/09/07 13:24:26
背伸び with マニュアル のスレはここですか?
640:デフォルトの名無しさん
08/09/07 13:45:03
いいえ、基礎を積むスレです。
641:デフォルトの名無しさん
08/09/07 14:53:17
配列の中での*はlispでの準クオート中の式を,@付けて評価→展開するものが元ネタっぽい。
だけど関数定義のときに引数定義の中で使われると、
lispの引数リストで使われる&restとか ...みたいな可変長引数みたいになる、ややこしいな。
&付きでProcを呼び出すものはなんだろう、C++のメンバ関数ポインタ?
def foo(*x)のときの*x言うのはrest引数構文
puts *arrの*arrは展開構文
puts &arrの&arrはProc変数渡し構文
Matzも*や&単体では意味が無いって言ってるし、こんなのでいいんじゃない?
さらにこういう前後の状況によって決まる類の「なんとか構文」なんてものは、
仕様書のある言語ではよくあるものだし。
642:デフォルトの名無しさん
08/09/07 15:00:53
Rubyとか超ウケル
643:デフォルトの名無しさん
08/09/07 15:23:21
puts &arr ってするとエラーが出るんですけど。。。
(ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32])
wrong argument type Array (expected Proc) (TypeError)
644:デフォルトの名無しさん
08/09/07 15:40:31
エラーが出ていいんだよ。エラーを読める程度の英語をちゃんと身につけないとねw
645:デフォルトの名無しさん
08/09/07 15:44:12
「文系 Web 2.0」 じゃ、やっぱ話題について来れないんだろうな…
java.net(英語)にも妄想オタクな奴が多いけど、サーバ・サイドだから学歴は高い奴多いしくおかしな文章を書いたりしないな。
だけどrubyは無能な文系ばかりしかいないようだ…メーリングをググってもゴミのごたくばかりだろ…
Matzはいつも大変だな…
646:デフォルトの名無しさん
08/09/07 15:45:04
>>644
あっ、エラーでいいんですか。
みなさん、とうとうと解説されているので、てっきり意味のある文だと思いました。
647:デフォルトの名無しさん
08/09/07 16:03:30
>>646
>>633を構ってないだけだ
648:デフォルトの名無しさん
08/09/07 16:07:49
>>641
文法上サポートしている構文というなら別にそれで文句はないですが、マニュアルに書いといてください。
p [*[11,22,33]] が出来るところを見ると、単項式として値を返すので、言語上の分類としては演算子じゃないかなと思います。
649:デフォルトの名無しさん
08/09/07 16:14:26
>>646-647
君たちはprocを理解してないのに偉そうにしてていいの?もっと一所懸命に勉強しないと!
650:デフォルトの名無しさん
08/09/07 16:29:34
>>648 の笑いどころ
lisp という単語出てきたとたん、腰が引ける。
2ch に来て「マニュアルに書いといてください。 」
理系の高学歴様は、ギャグのセンスもさすがだなw
651:デフォルトの名無しさん
08/09/07 16:45:51
>>646
そんなことよりおマンコはちゃんと洗っといた方がいいですよ。いつ何があるかわからないし・・・
652:デフォルトの名無しさん
08/09/07 16:48:00
変数名がかぶっても、ブロックの中だけ有効にするにはどうすればいいのでしょうか?
a = 1
1.times do
a = 2
end
puts a # 1になって欲しい
653:デフォルトの名無しさん
08/09/07 16:52:22
それよりも >>641がC++どころかCすらも理解してないのにはビックリした!
654:デフォルトの名無しさん
08/09/07 16:54:20
質問なので、age失礼します。
携帯でGoogle chartを使おうと、以下のようにchartのアドレスをhtmlに埋めました。
puts <<-EOD
<html><body>
<img src="URLリンク(chart.apis.google.com)">
</body></html>
EOD
結果、auやvodaphoneでは見えたのですが、docomoではグラフが見えません。そこで調べてみると、docomoではpngを読まないため、gifにコンバートしろとのこと。
URLリンク(ke-tai.org)
しかし、Rubyで同様のコンバートを行うにはどうしたら良いか、そしてどうやってhtmlに埋め込んでいいかわかりません。やり方が乗っている場所でも結構ですので、どなたか教えていただけませんか。よろしくお願いいたします。
655:デフォルトの名無しさん
08/09/07 16:58:35
>>652
>>649
656:デフォルトの名無しさん
08/09/07 17:12:31
>>652
変数名がかぶってる限りは無理
ちゃんと違う変数名で定義するしかない
657:デフォルトの名無しさん
08/09/07 17:20:44
>>656
そうなんですか。
Perlのように、局所化するmyとかはないんですね。。。
658:656
08/09/07 17:21:10
追伸
初心者スレの範疇を外れるけど、現在のruby1.9.0系(開発版)では
ブロックローカルな変数を定義する(=名前がかぶっても問題ない)文法がある
たぶんruby1.9.1にも入るはず
659:デフォルトの名無しさん
08/09/07 17:25:32
>>656-658
やっぱり、このレベルなのか…
660:デフォルトの名無しさん
08/09/07 17:36:39
>>658
今後のRubyには実装される予定なんですね
了解しました。
661:デフォルトの名無しさん
08/09/07 17:44:55
ローカル変数として同じの使ってるぶんには被るの許容するしかないな
まあ不便っちゃ不便
662:デフォルトの名無しさん
08/09/07 17:46:54
クロージャとかイテレーターって知ってる?
663:デフォルトの名無しさん
08/09/07 17:49:18
JRubyでYAML使おうとしています。
日本語をdumpすると"\343\203\206\343\202\271\343\203\210"な感じで出力されてしまいます。
RubyのSyckでも日本語をバイナリとして扱ってしまうという、似た感じの問題があり、
パッチやら何やら書かれているようですが、
JRuby(JvYAML?)において日本語文字列のまま出力させる方法はありませんでしょうか?
664:デフォルトの名無しさん
08/09/07 18:02:09
>>663
Ya2YAML
JRubyで試したことはないが、pure rubyだからたぶん動くんじゃないかな
665:663
08/09/07 18:18:46
>>664
どうもありがとうございます。
でも、Ya2YAMLはSyck用のバイナリ認識するとこを修正なんだそうです。
JRubyの場合はJvYAML(JvYAMLb)だそうですので、Pure Rubyか否かは関係なさそうです……。
URLリンク(gihyo.jp)
日本語全然使えない、とか書いてあるところもあったりして。
普通に表示したりする分には問題無いのですが、可読性という意味で言うと価値が激減。
dumpすると頭に"---"がつく辺りもRubyの最新版と挙動が違ったりするのですよね。細かいですが。
Javaのライブラリを使っていなければRubyを使うのですけれども……。
666:デフォルトの名無しさん
08/09/07 18:19:14
>>654
ImageMagickプログラムを使うか、それをRubyから使うRubyMagickを使う
自分のサーバに「Google Chartにデータ渡して結果を受け取りGIFに変換して画像を吐くCGI」として置くしかないな
667:654
08/09/07 18:36:53
ありがとうございます。
なるほど、直接コンバートできるような手立ては無いということですね。
では、画像吐き専門のcgiを作ることにします。
(PHPでやるかもです)
668:デフォルトの名無しさん
08/09/07 18:39:30
>>665
楽してないでそれぐらい自分で実装したらどうよ?
669:663
08/09/07 18:52:47
>>668
すみません。スキルがゴミなもので、解決策が自分だけの力では思い浮かばず、
一週間程悩んだ挙げ句に、こうして初心者スレで質問させていただいている次第です。
実装、というのはYAMLのパーサを実装ということでしょうか?
言語内DSL(もどき)を作って、YAMLを使わない方法に逃げることは一応考えているのですが……。
670:デフォルトの名無しさん
08/09/07 18:56:36
いつも「おっきいチンチン」のこと想像しながらWebしてます!
671:デフォルトの名無しさん
08/09/07 19:11:23
YAMLをあきらめてJSONを使う。
672:デフォルトの名無しさん
08/09/07 19:20:17
YAMLで作ったデータをどこに持ってくのかにもよるな
673:デフォルトの名無しさん
08/09/07 19:25:19
>>665
Ya2YAMLのソースコード読んでみたが、Syckに依存してるらしきところはないよ
だからSyckかJvYAMLかは関係ないはず
674:663
08/09/07 20:16:56
>>664 >>673
う、すみません。Ya2YAMLをちょっと勘違いしていました。
ちゃんとソース読んできます。どうもありがとうございます。
675:デフォルトの名無しさん
08/09/07 20:30:49
ゴミなんでしょ?もう来るな。
676:デフォルトの名無しさん
08/09/08 00:13:21
コテつけろよ
677:デフォルトの名無しさん
08/09/08 15:11:49
デンターシステマのかためより、やらかめの方がいいですよ。
どうせ堅めを使っても歯ぐきから血が出るだけなんで。
678:デフォルトの名無しさん
08/09/08 17:27:16
歯ぐき弱すぎじゃね・・・?
個人差は有るだろうけど、
いっぺん歯科で相談してみたほうがいい。
679:デフォルトの名無しさん
08/09/08 17:42:29
普通は1から10まで足して55になるんですが、逆に10から9,8と足していく文はどうなるんでしょうか。
680:デフォルトの名無しさん
08/09/08 18:03:12
やっぱり55になります
681:デフォルトの名無しさん
08/09/08 18:23:32
逆から足して同じ結果にならないなら大発見かもしれん
682:デフォルトの名無しさん
08/09/08 18:25:57
BEとLEで結果が違います
683:デフォルトの名無しさん
08/09/08 18:30:58
>>681
多項式級数式ではそういうことがよく起こりますが…もしかして無能?
684:デフォルトの名無しさん
08/09/08 18:46:45
どっちが頭いいかをふっかけてくる奴がいっちゃん無能
685:デフォルトの名無しさん
08/09/08 18:57:42
無能はすぐage進行にしたがるww
686:デフォルトの名無しさん
08/09/08 18:58:12
>>679
よくわからんけど、こんなのかな。
i = 10
sum = 0
while i > 0
sum += i
i -= 1
end
i = 0
sum = 0
while (i += 1) <= 10
j = 10 - i
sum += j
end
sum = 0
(1..10).to_a.reverse.each {|i| sum += i }
687:デフォルトの名無しさん
08/09/08 19:01:41
downto
688:デフォルトの名無しさん
08/09/08 19:05:54
ruby1.8.7きめぇえええええ
[*(1..10)].reverse.inject(0,&:+) # => 55
689:デフォルトの名無しさん
08/09/08 19:15:31
&:+って何?
690:デフォルトの名無しさん
08/09/08 19:19:51
みなさん、ありがとうございます。
ちゃんと55になりました。
逆走もあったんですか…
691:デフォルトの名無しさん
08/09/08 19:21:59
>>688
これは可読性以前の数学パズルの世界じゃないの?
rubyのキモさは、Cのポインタをほうふつさせるキモキモだなw
692:デフォルトの名無しさん
08/09/08 19:25:02
委譲の英訳ってtransferでいいの?
辞書だとそうなってるけどプログラミングでもそうなん?
693:デフォルトの名無しさん
08/09/08 19:27:54
>>692
オブジェクト指向における委譲はdelegation
694:デフォルトの名無しさん
08/09/08 19:31:54
サンクス
delegateってメソッドポインタの事かと思ってたけど
委譲の意味でも使うのか。
695:デフォルトの名無しさん
08/09/08 21:19:05
>>694
C#のやつのことなら、delegateをそういう機能に使うキーワードにしたって
だけで、突き詰めた意味は結局委譲。
696:デフォルトの名無しさん
08/09/08 21:28:31
めそっどぽいんたってなんじゃらほ
697:デフォルトの名無しさん
08/09/08 21:37:20
(1..10).reverse_each.inject(:+)
698:デフォルトの名無しさん
08/09/08 22:00:35
>>696
C#を調べろ、としか言いようがない。
要するに関数ポインタのC#版。
699:デフォルトの名無しさん
08/09/08 22:08:03
>>696
特定のインスタンスの特定のメソッド(GUI部品とか)を呼び出すためのポインタ
特定のクラスのオブジェクトにメソッド実行を依頼すると考えれば根っこは同じ
という説明はどうだろう
700:デフォルトの名無しさん
08/09/08 22:18:00
わっかりやすいのう
701:デフォルトの名無しさん
08/09/09 02:18:37
質問です
関数オブジェクトと普通の関数を呼び出すときのコストってどちらも同じですか?
702:デフォルトの名無しさん
08/09/09 02:41:11
・Rubyには厳密な関数はない
・Rubyには関数オブジェクトもないっていうかまあこのへんは別にいいや
てことで、普通のメソッド定義とProc(lambda)オブジェクトの比較と読み替える
Procの呼び出しコストの重さは異常
以上
使うと面倒な概念をとても簡潔に表現できるけど、多用すると明らかに遅くなるので注意
便利なのでほいほい作る傾向にあるが、何度も使う部分に組み込む場合は、できれば丁寧に分析してメソッドにしたほうがいい
703:デフォルトの名無しさん
08/09/09 06:12:15
Rubyってメソッドもオブジェクトなの・・・?
704:デフォルトの名無しさん
08/09/09 06:44:11
>>703
オブジェクト化することもできる
705:デフォルトの名無しさん
08/09/09 07:23:00
そんなことしたマンコは臭うけどな
706:デフォルトの名無しさん
08/09/09 08:30:13
javascriptバカにすんな
707:デフォルトの名無しさん
08/09/09 08:32:52
臭いのは勘弁して・・・
708:デフォルトの名無しさん
08/09/09 09:08:56
javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
709:デフォルトの名無しさん
08/09/09 09:09:38
毎日が夏休み
710:デフォルトの名無しさん
08/09/09 09:17:50
>>703
ブロックつきメソッドの {|x| ...} 部分を「持ち歩ける」と考えてもらうと間違いない
711:デフォルトの名無しさん
08/09/09 09:24:09
>>708
>javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
spidermonkeyもrhinoもコンソールから起動できるじゃん。
バカ丸出しはおまえwww
712:デフォルトの名無しさん
08/09/09 09:38:26
javascriptは組み込み向けの設計ってこと忘れてるおまえは、バカ丸出しww
713:デフォルトの名無しさん
08/09/09 11:25:13
話題のv8のshellが普通にいい感じですよ
714:デフォルトの名無しさん
08/09/09 11:33:16
個人の著作を売り物にするようなところだしmixiと同じだな。
そのうち違う波が来て潰されるんだろうな…
715:デフォルトの名無しさん
08/09/09 11:40:34
>>702
そうなんですか。
昨日からruby勉強し始めて、全部関数オブジェクトにしたら一貫性あるかな?
とか思っていたんですが、重いなら仕方ないですね。。
716:デフォルトの名無しさん
08/09/09 11:45:08
全部ラムダ式にすればいいと言うわけですね
717:デフォルトの名無しさん
08/09/09 12:07:13
質問です。
配列のmap関数で適用する手続きの代わりに関数オブジェクトを使うことはできませんか?
718:デフォルトの名無しさん
08/09/09 12:18:26
関数オブジェクトって何ですか?
Procオブジェクトですか、ブロックですか?
719:デフォルトの名無しさん
08/09/09 12:23:08
たとえば、
hoge = lambda{|x| x+1}
このhogeという値にバインドした関数オブジェクトをmapで使うことはできませんか?
720:デフォルトの名無しさん
08/09/09 12:26:52
(1..10).map &hoge
721:デフォルトの名無しさん
08/09/09 12:32:47
>>720
おお、すばらしいです
では、次の質問ですが、
関数オブジェクト同士で関数合成ってどうやるんですか?
722:デフォルトの名無しさん
08/09/09 12:37:10
procとlambdaで作ったオブジェクトってイマイチ分からないのですが、簡単に言えば何が違うんですか?
723:デフォルトの名無しさん
08/09/09 12:46:54
URLリンク(www.hinet.mydns.jp)
724:デフォルトの名無しさん
08/09/09 12:49:57
>>721
例えばこんなのがある
Function Composition 2.0 Ruby Banter #006
URLリンク(media.fngtps.com)
725:デフォルトの名無しさん
08/09/09 13:04:29
>>721 >>722
そのオブジェクトは Proc オブジェクト
違いはこのへんに URLリンク(doc.loveruby.net)
726:デフォルトの名無しさん
08/09/09 13:10:13
「関数オブジェクト」なんてないということをとりあえず前提として話してくれ。
なんで執拗に「関数オブジェクト」と言い続けるんだ?
727:717=721
08/09/09 13:10:26
>>721と>>722は別人です
728:デフォルトの名無しさん
08/09/09 13:12:54
func do |x| p x end
func { |x| p x }
の違いでしたか・・・
729:デフォルトの名無しさん
08/09/09 14:22:21
質問です
ある変数の型が何なのか調べる方法はありますか?
730:デフォルトの名無しさん
08/09/09 14:37:19
質問です。
hoge = Array.new(10){|i| i}.map{|x| x+1}
と
hoge = Array.new(10){|i| i}.map!{|x| x+1}
ではリソースの使い方に違いがありますか??
731:デフォルトの名無しさん
08/09/09 14:41:59
732:デフォルトの名無しさん
08/09/09 14:44:20
>>729
Rubyの変数には型はありません
733:デフォルトの名無しさん
08/09/09 14:47:11
>>732
では、たとえば配列の要素をすべて足す関数を作って、
整数と文字が入り交じった配列を渡してしまった場合はどうなるんですか?
734:デフォルトの名無しさん
08/09/09 14:48:14
配列の要素の型に応じて違う処理をさせる方法はありませんか?
735:デフォルトの名無しさん
08/09/09 14:48:49
精子はやっぱり飲んじゃった方がいいかな?
736:デフォルトの名無しさん
08/09/09 14:52:28
>>732
型が無いというのも誤解を生む表現だと思うのですが、
ではどのオブジェクトのインスタンスなのか調べる方法は無いんでしょうか?
737:デフォルトの名無しさん
08/09/09 14:53:56
>>730
メモリとかを気にするのに Array.new に引数をつけてる人は久しぶりに見た
nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね
で、map と map! の差だけで、見たままの動作で、見たままのメモリ消費だと思われる
配列要素が 1万個とかバカみたいに多いときは後者のほうが一瞬だけ若干得
ただ、後者のような書き方はあまりしないかな
738:デフォルトの名無しさん
08/09/09 14:54:09
どのクラスのインスタンスなのか、でした。
739:デフォルトの名無しさん
08/09/09 14:56:26
>>736
型はない
a = 10 したあとに a = 'str' としても動作する以上、変数に型は無いと言って差し支えない
で、オブジェクトがどのクラスに属しているかはclassメソッドを使うとわかる
740:デフォルトの名無しさん
08/09/09 14:56:36
>>730
前者は配列が2個作られる。後者は1個だけ。課題か何かか?
>>733
足せないものを足そうとした時にエラー
>>734
kind_of? で仕分ける
741:デフォルトの名無しさん
08/09/09 15:00:56
Rubyの変数は本気でただのラベルだからな
他の言語では変数はいわゆる箱のようなメタファで説明できて、箱には形が決まってたりするもんだが
>>734
動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
742:230
08/09/09 15:07:39
>>740
課題ではありません。
昨日からruby勉強中なんですよ。
夏休みだけど暇なんで。
743:デフォルトの名無しさん
08/09/09 15:08:01
このスレの住人は糞ばかりだし、飲んじゃった方がいいよw
744:230
08/09/09 15:10:45
>>737
最適化してはくれないんですね。
745:デフォルトの名無しさん
08/09/09 15:11:17
>>733
要素が順番に問題なく + メソッドに渡される
不適なオブジェクトが + メソッド内(で使ってる他のメソッド)でチェックされているなら、
TypeError か何か決められた例外が発生してそこで処理が止まる
ある意味めんどくさいとも言えるな
だから、「要素に数値だけが入っていることを配列登録時にチェックするArrayクラス」のようなものを作ったりする
746:230
08/09/09 15:13:53
>>745
なるほど。
静的型付け言語に慣れているせいで、ちょっとその辺はぎこちなくなります。
747:デフォルトの名無しさん
08/09/09 15:14:33
>>744
「どうせ直後で数値が全要素に代入されるんだから最初に nil 入れるのやめようぜ、
あ、ちょっと待って、map が続いてるからそれもまとめて 1回で処理しよう」
という判断は Ruby はしない
というか無茶言うな
そういうのはスクリプト作成者が事前に考えてくれ
748:デフォルトの名無しさん
08/09/09 15:16:32
nilの実装はintの0x00だけど?
749:デフォルトの名無しさん
08/09/09 15:19:27
>>747
遅延評価のHaskellなら朝飯前なんだがな
750:デフォルトの名無しさん
08/09/09 15:20:40
あのー横から失礼しますが、
rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
751:730
08/09/09 15:22:01
>>737
度々すみません。
たとえば1~1000が順番に格納されている配列を生成するのに効率的な方法を教えてください
752:デフォルトの名無しさん
08/09/09 15:24:33
>>751
(1..1000).to_a
753:730
08/09/09 15:25:58
>>752
ありがとうございます
754:デフォルトの名無しさん
08/09/09 15:27:54
>>748
んなこと言ったら文字列は全部ただのバイト列だぞ(1.8限定)
755:デフォルトの名無しさん
08/09/09 15:28:26
>nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね
こういうのは、こいつの妄想じゃね?
756:デフォルトの名無しさん
08/09/09 15:31:24
>rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
どういうのを求めてるのかよく分からんが
「逆引き Ruby」でぐぐったら幸せなんじゃないかな
757:デフォルトの名無しさん
08/09/09 15:37:25
そういう逆引きじゃなくて、文字を数えるwc伝統的プログラムが集まったサンプル集です。
"hello world\n"の延長みたいなものなんですが、どこにもないんでしょうか?
758:デフォルトの名無しさん
08/09/09 15:40:53
>>757
意図はわかった
Rubyコミュニティとしては特にないので、個人で書かれた入門ページでも適当に探すといい
もとろん間違ってる可能性もあるが、初学者ならおそらく同じように間違うわけでそれはそれで意義があるだろう
というか、そういうのがきちんとまとまったページってのは他の言語でも稀なんじゃないかなー
あれば楽しそうな気もするけどね
759:デフォルトの名無しさん
08/09/09 15:44:54
あのー・・・・rubyは初めて触るんですけど、他の言語はバリバリ使いwwなんですが・・・・・・・・・
760:デフォルトの名無しさん
08/09/09 15:45:45
>>750 サクれ
761:デフォルトの名無しさん
08/09/09 15:47:28
昔は「○○コマンドのクローンを作ってみよう」というのは教材としてわかりやすかったんだけどね
今はCUIコマンド自体の使用頻度が少なくて
「wcってなんですか?」
「いったいどういうときに使うんですか?」
「コマンドまたはファイル名が違いますって表示されました」
という状態で
762:デフォルトの名無しさん
08/09/09 15:49:18
>>741
> >>734
> 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
Rationalきぼんぬ。ピッケル本のどこかに書いてあったっけ?(ふとそんな気がしないでもない)
763:デフォルトの名無しさん
08/09/09 15:57:09
一応K&Cとかさくっと読んじゃったんですけど・・・ないですか。
日本語だと公式サイトの説明も適当だし(文章を書くのが面倒なんでしょうけど)、それなら有用なサンプルがあると理解が深まるんじゃないのかなと…
764:デフォルトの名無しさん
08/09/09 15:58:45
ごっちゃになってたけど、CのK&Rでした。C言語教徒には失礼・・・
765:デフォルトの名無しさん
08/09/09 15:58:59
K&C・・・ああ、ケンタッキーとチキンのことか。
766:デフォルトの名無しさん
08/09/09 16:01:32
モルモン教教徒はすぐ我慢汁が出ちゃうのがなんともねぇw
767:デフォルトの名無しさん
08/09/09 16:07:45
K&Rは難しすぎでさくっとなんか読めないよ。
あの超難しいといわれてる「ポインタ」を当然知ってるって前提だろうが。
768:デフォルトの名無しさん
08/09/09 16:16:59
ポインタを超難しいと言っている人を久しぶりに見た。
ああ、教鞭を執らなくなって結構経つなぁ・・
769:デフォルトの名無しさん
08/09/09 16:19:13
>>748
nilの実装はunsigned longの4だが?
環境によってはunsigned longじゃなくてもっと大きい型のこともあるが。
770:デフォルトの名無しさん
08/09/09 16:19:35
K&Rを難しいと言っているぐらいだからHaskellの遅延評価やモナドなんか常軌を逸するだろうな。
771:デフォルトの名無しさん
08/09/09 16:20:26
>>766
モルモン教とRubyにどんな関係があるんですか?
前々から気になっていましたが。
772:デフォルトの名無しさん
08/09/09 16:21:57
大多数の大学生のような集団にとってきちんと理解しようとする場合「超難しいと言われてる」でいいと思う
773:デフォルトの名無しさん
08/09/09 16:22:11
>>770
というか、Cのポインタが難しくてLispに逃げたくせに偉そうにするなww
774:デフォルトの名無しさん
08/09/09 16:26:14
にわかC使いがLL言語を叩くスレ
775:730
08/09/09 16:28:05
$ time ruby -e 'test = Array.new(100000){|i| i}'
real 0m0.220s
user 0m0.120s
sys 0m0.100s
$ time ruby -e 'test = (0..100000).to_a'
real 0m0.130s
user 0m0.120s
sys 0m0.010s
本当ですね。
776:デフォルトの名無しさん
08/09/09 16:35:27
>>775
それ、どういう処理なのか理解してないでしょ?笑えるんだけどw
777:デフォルトの名無しさん
08/09/09 16:36:26
>>771
Ruby開発者がばりばりのモルモン教
778:デフォルトの名無しさん
08/09/09 16:37:03
まあ、どうあがいたってポインタは難しいからね・・・
779:デフォルトの名無しさん
08/09/09 16:40:38
>>770
先生はモルモン教さんですか?
780:730
08/09/09 16:40:58
>>776
どういうメソッドが使われたかはプロファイラを使えばわかるみたいですね。
$ ruby -r profile -e 'test = (0..100000).to_a' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 0.08 0.08 1 80.00 80.00 Range#each
0.00 0.08 0.00 1 0.00 80.00 Enumerable.to_a
0.00 0.08 0.00 1 0.00 80.00 #toplevel
$ ruby -r profile -e 'test = Array.new(100000){|i| i}' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 1.15 1.15 1 1150.00 1150.00 Array#initialize
0.00 1.15 0.00 1 0.00 1150.00 Class#new
0.00 1.15 0.00 1 0.00 1150.00 #toplevel
781:デフォルトの名無しさん
08/09/09 16:47:27
そういえば、さっきの妄想君は死んだのか?
782:デフォルトの名無しさん
08/09/09 16:50:15
K&Rのサンプル集とか面白かったんで、これと似たようなサンプル(課題)を是非コミュニティーでやってください!お願いします!
783:デフォルトの名無しさん
08/09/09 16:50:38
ブロック使う方は毎要素でyieldしてるからその差じゃね?
784:デフォルトの名無しさん
08/09/09 17:06:24
>>782
Rubyのサンプルに限らず他言語でのサンプルをRubyで書いてみたらいいんじゃね
785:730
08/09/09 17:09:44
大まかにrubyのことがわかってきたので自己テストのためにリバーシプログラム書いてみますね。
786:デフォルトの名無しさん
08/09/09 17:14:10
str=""
str << x
str .concat x
ま、好きな方を使え。どうせ行き詰まるんだろうけどw
787:デフォルトの名無しさん
08/09/09 17:29:07
>>750
書籍 「Rubyレシピブック」 お勧め。
788:デフォルトの名無しさん
08/09/09 17:55:56
APIは熟読するぐらいに読まないと。
789:デフォルトの名無しさん
08/09/09 19:14:23
コード書いてるそばから一発でriやrefe2xでドキュメントを閲覧したり
ソースコード上の定義やCによる実装に飛べるようなエディタの支援が無いとキツイな
790:730
08/09/09 20:43:52
質問です
ある変数が取り得る値の範囲をあらかじめ定めることは可能でしょうか?
たとえば、代入時に0~10までの値以外の値が代入されそうになったとき、
例外を発生させるようなメカニズムなど。
791:デフォルトの名無しさん
08/09/09 20:49:40
まずは初心者向けサイトで勉強したらどうよ?
792:デフォルトの名無しさん
08/09/09 20:56:53
>>790
ある変数て…
Ruby の変数には型がないって、このスレの今日の部分にも書いてあるよね
とりあえず、入門書を読んでみなよ
793:730
08/09/09 21:04:08
>>792
それは理解しましたが、
私が聞きたいのは型に関することではなく(実質は型のようなものでしょうが)、
ヒューマンエラーで誤って100などの数字を代入しないよう、
安全な代入操作を行いたいだけなんです。
ヒューマンエラーで誤って100などの数字を代入しないために。
794:デフォルトの名無しさん
08/09/09 21:06:56
>>793
if文って知ってる?
795:デフォルトの名無しさん
08/09/09 21:08:48
レヴェルの低いのがからんどるな
796:デフォルトの名無しさん
08/09/09 21:10:03
たぶんチンコがはえてないんだろw
797:730
08/09/09 21:10:37
>>794
代入文を書く直前にif文を書かずに済む方法はありますか?
798:デフォルトの名無しさん
08/09/09 21:11:01
>>790
オブジェクトという言葉を一度も使ってないことが気にかかる
Rubyはすべてのものがオブジェクトだ
変数と呼ばれるものは、該当するクラスをnew(とか)して作ったオブジェクト(インスタンス)に名前を付けたものに過ぎない
変数という入れ物は存在しない
オブジェクトというものについて勉強することを勧めるよ
これを大まかにでも理解しないままRubyの勉強を進めるとか遠回り過ぎて気が遠くなる
で、回答は
「オブジェクトに登録するときのメソッドをフックする、または専用の登録用メソッドを作成する」
というのが一般的だと思われる
799:デフォルトの名無しさん
08/09/09 21:11:35
はよ初心者サイト行け
800:デフォルトの名無しさん
08/09/09 21:11:58
>>790
class C
def foo=(v)
raise if v < 0 || v > 10
@foo = v
end
def foo
@foo
end
end
o = C.new
o.foo = 11
801:デフォルトの名無しさん
08/09/09 21:12:43
>>794
if文知ってるとチンコはえてきますか?
802:730
08/09/09 21:12:55
>>798
ありがとうございます。
803:デフォルトの名無しさん
08/09/09 21:13:17
>>790
ローカル変数やインスタンス変数に入る値(=代入されるオブジェクトの内容)を、自動的に制限する方法は
基本的には存在しない。テストで頑張るのが常道
ただし、アクセサメソッドを上書きすることで
obj.parameter = 100
といった代入の形に限り、何らかの制限を行うことはできる
804:デフォルトの名無しさん
08/09/09 21:14:50
>>798 の毒され方が気になる