1 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 01:07:21 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.7 の使用をお勧めします】 ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。 1.9 の新機能の一部が利用可能なので初学者にお勧めです。 ※ただし十分安定しているとは言えないので プロダクション環境での利用にはお勧めしません。 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
286 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 10:55:45 ] これってやっぱりあの変態さに定評のあるsuccがバックエンドになってるのかな?
287 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:00:17 ] >>281 初心者は自分の手で作ることを嫌がったら駄目だぞ だいたい、どんなことがなぜ望ましくないかなんて耳で聞いだだけじゃわからんじゃないか Net::HTTPでgetとheadとpostをするのは基本 ラッパーメソッドを作るのも基本 ヘッダやクッキーの処理にも手を出して、うわ何これめんどくせー、となった時点で既存の外部ライブラリを探す こうすれば、その外部ライブラリの中の挙動もある程度推測できるし、不足点やバグがあったときに対処もできる 最初から外部ライブラリだけを使ってしまったのではなかなかこうはいかない ということで、gemで "httpclient" をインストールすれ HEADリクエストにも対応している irb> require 'rubygems' irb> require 'httpclient' irb> client = HTTPClient.new irb> res = client.head('www.google.com/ ') irb> p res.header['Location'] ["www.google.co.jp/ "]
288 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:03:19 ] >>286 irb> p "Z".succ "AA" ___l___ /、`二//-‐''"´::l|::l l! ';!u ';/:::l ', ';::::::l ';:::::i::::: ノ l Jヽ レ/::/ /:イ:\/l:l l::l u !. l / ';:::l ', ';:::::l. ';::::l::::: ノヌ レ /:l l:::::lヽ|l l:l し !/ ';:l,、-‐、::::l ';::::l:::: / ヽ、_ /::l l:::::l l\l ヽ-' / ';!-ー 、';::ト、';::::l::: ム ヒ /::::l/l::::lニ‐-、`` / /;;;;;;;;;;;;;ヽ! i::::l::: 月 ヒ /i::/ l::l;;;;;ヽ \ i;;;;;;;;;;;;;;;;;;;l l::l::: ノ l ヽヽノ /:::l/:l /;;l:!;;;;;;;;;', ';;;;;;;;;;;;;;;;;ノ l:l::  ̄ ̄ /::::;ィ::l. l;;;;!;;;;;;;;;;;l `‐--‐'´.....:::::::::!l __|_ ヽヽ /イ//l::l ヽ、;;;;;;;ノ.... し :::::::::::::::::::::ヽ /!リ l | ー /::::l';!:::::::::::::::::::: u ', i ノ l | ヽー /イ';::l ’ し u. i l l | /';:';:!,.イ し 入 l l U | /,、-'´/ し / ヽ、 u し ,' ,' l | /l し _,.ノ `フ" ,' ,' ,ィ::/: | /::::::ヽ ヽ / し ,' ,' / l:: | /::::::::::::`‐、 し ', / u ,、-'´ l,、- | ``‐-、._::::::::::` ‐ 、 ',/ , -'´`'´ ,-'´ | _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´ u / | | | | \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\ u / | | | |
289 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:08:10 ] succ大人気w
290 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:12:54 ] 'z'.succ が "A" ではなく "aa" なのは変態でいいと思う まあ 9.succ が 0 ではなく 10 なんだから予想の範疇ではあるが '10'.succ が "11" なのも変態認定してよい
291 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:30:48 ] それは普通
292 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:43:37 ] '99'.succ が "100" になるのは変態 というか Ruby の succ への拘りは異常 succ を便利に使うのってどの言語由来?
293 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:50:38 ] perlの ++ -- 由来 rubyが異常なわけではない
294 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:29:46 ] 特定サイトへの頻繁なWebアクセスのキャッシュ管理をDB的にやってくれるライブラリってないすかね {URL => HTTPヘッダ} というハッシュを1個のpstoreに保存して、スクリプトの最初に完全に読み込んで使ってるんだけど、 もっといいのあるかな
295 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 14:41:59 ] >>294 初心者スレ的にはハッシュとPStoreでサイト用にカスタマイズするのが一番だと思う マルチスレッドでアクセスされてPStoreが壊れそうならsqlite3とかでデータベース使え Railsのどこかに何かあるような気もするが、たぶん超ごっついと思われ
296 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:29:54 ] alias suck succ
297 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 22:44:20 ] >>294 揮発してもかまわないなら memcached
298 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:07:50 ] ruby 1.8.7では [7,6,5].map.with_index{|x, i| x*i} ができないので、かわりに [7,6,5].each_with_index.map{|x, i| x*i} と、やるのを見かけました。 ならば inject.with_index 的な意味で [7,6,5].each_with_index.inject(0){|r, x, i| r+x*i} と、できるのでは!と思ってやったところ、 in `*': no implicit conversion from nil to integer (TypeError) というエラーがでます。 色々試したところ [7,6,5].each_with_index.inject(0){|r, x, i| p x} とやると [7, 0] [6, 1] [5, 2] と出力されました。 injectの第2ブロック引数 には [元配列の要素,インデックス] という配列が 渡されているようです。 (第3ブロック引数は何も渡されない) なーんか、違和感があるんですけど、そんなことないですか?
299 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 02:34:14 ] >>298 [7,6,5].each_with_index.inject(0){|r, (x, i)| r+x*i}
300 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:02:07 ] rails2.1の入門教えてください
301 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:12:11 ] アバウトだのう Rails初心者スレってないんだよね、そう言えば 需要が微妙だけど…
302 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:14:29 ] beginとendが予約語なので、範囲の開始と終了を表す変数名で困ってます Rubyで一般的な開始と終了の変数名のペアってありますか? 文法ミスにならないようにbeginとendを慎重に使うというのは勘弁してください
303 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:21:47 ] Rangeクラスではfirst、lastが使われている
304 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 18:36:52 ] beginning-ending opening-close(closing) beg ed
305 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:21:49 ] start finish
306 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:27:06 ] finishはないわー
307 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:27:28 ] a z
308 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 20:50:19 ] 仮引数では s と e をよく使う が、文字列の s と 配列要素の e と被るのが難点
309 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:00:29 ] start と stop @begin と @end
310 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:01:43 ] >>302 >範囲の開始と終了を表す変数名 from と to でいいような気がしてきた
311 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:12:25 ] from と to は変換が絡む処理に見える ファイルの移動とか 文字列の変換とか
312 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 21:19:30 ] _beginと_endで
313 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:40:10 ] >>311 そんなことないと思うけどなー 変換が絡む処理なら src と dst (source と destination) だよ
314 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:41:41 ] ほほう from,toじゃなくてsrc,dstかメモっとこ
315 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 23:52:09 ] srcとdstはC時代の遺物のような気もする いや、フルスペルで書くと長すぎるが
316 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 01:18:47 ] dstは躊躇うけどdestだと受け入れてしまう気がする
317 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 02:27:59 ] ええー
318 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 05:26:58 ] src に「開始地点」以外の意図が多すぎるから、src - dst はピンと来ないなあ dst と書かれていても何のことか悩んでググる自信がある
319 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 07:58:21 ] s(tart) - g(oal) in - out src -dst from - to begin - end ruby - ?
320 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 08:23:45 ] b(egin) e(nd) k(ey) v(alue) - ペア構造のキー値 r(et) e(lement) - reduce の 第一引数、第二引数 読んでもらおうという気が見えないコードが書けます
321 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:13:24 ] 使えるのが Ruby だけというのもよくないと思うので、PHP5 の勉強も始める うっひょーこの関数全部フラットでこのまま覚えるのクラスによるクラス分けとかないの 配列(ハッシュ)からペア取り除くのに unset($array['key']) って書かないといけないのね ずっと前にちょっとだけ齧った Perl4 を思い出した
322 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:20:00 ] 関数って普通フラットじゃね? メソッドならレシーバいるけど
323 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:47:36 ] パッケージとか、名前空間に入れられることもあると思う
324 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:53:45 ] 標準(添付・内部)ライブラリがRubyのように全部クラス構造になってて 配列は配列クラスのインスタンスで操作はメソッドを経由して行うとか言うことは確かにないな PHP5はクラスを作れるが、内部は普通にPHP関数での遣り取りだ インターフェースとしてのオブジェクト指向だね
325 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:18:09 ] 質問です。 #!/usr/local/bin/ruby print "Content-type: text/html\n\n" require "csv" csv = CSV.open('file.csv,'r') csv.each_with_index do |line,n| a[n] = line[0] b[n] = line[1] puts end print"<html><body>#[a]</body></html>" print"<html><body>#[b]</body></html>" csv.close このプログラムをうpしたのですが内部サーバーエラーが出てしまいます。 自分では間違っているところが見つけられませんでした どうすれば正常に作動するでしょうか。 回答お願いします。
326 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:32:58 ] ~$ ruby -c test.rb test.rb:5: syntax error, unexpected tIDENTIFIER, expecting ')' csv = CSV.open('file.csv,'r') ^ test.rb:5: unterminated string meets end of file
327 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:33:35 ] file.csvのところのクォーテーションが足りない aもbも初期化されていないので配列かハッシュを代入すると良い #[a]でなくて#{a} htmlタグは1度以上出力しないほうが良い 試してないけどぱっと見てこのぐらい あといきなりCGIよりも一度コマンドラインで試した方がエラーが見えてわかりやすい
328 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:38:00 ] expectationsっていいんですか? 何か場当り的な網羅性の無いテストを推奨するような作りに見えるんですが
329 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:05:50 ] >>320 俺は reduce は acc(mulator) e(lement) が好きだな。 あ、もちろんコードにあわせて sumとかにすることもあるけど。
330 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 20:35:27 ] >>328 それは「あんな実行速度の遅いRubyのどこがいいのかわからない」という主張と同質だぞ
331 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:36:41 ] >>326 ,>>327 回答ありがとうございました。 次からはコマンドラインで一度試してみます。
332 名前:デフォルトの名無しさん [2008/08/29(金) 06:33:27 ] 小林と申します。 メーリングリストの利用自体がはじめてで、安易な行動をとり 皆様に不快な思いをさせてしまいましたこと、心からお詫び申し上げます。 大変申し訳ございませんでした。
333 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 06:34:15 ] I'm sorry . This is Test Mail これはテストメールです。
334 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 08:52:27 ] 信者としては こんなバカでも使えるわかりやすいRuby♥ と、 宣伝材料にしたいところだ。
335 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 10:41:33 ] net/httpとWindowsのバージョンに関する質問です。 Ruby1.8.6+exerb最新版で固めたプログラム内でnet/httpを使用しています。 そのプログラムはVistaSP1とXPSP2では正常に動作しますが、XPSP3だと接続時に 「接続済みの呼び出し先が一定の時間を過、、、」と出て接続すらできない状態です。 なにかそのあたりの情報がありましたら、ぜひ教えてください。 宜しくお願いします。
336 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 15:27:37 ] >>335 rubyのせいとかOSのバージョンが違うせいとか考える前に、問題のマシンでちゃんとネットワークに繋がってるのか調べた方がいい。 プロクシなしで普通にブラウザで外が見えるのか、とか。
337 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 19:48:45 ] >>295 sqliteより、RubyレベルでまーしゃるしたHashのほうが速くて便利だと思う
338 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:11:31 ] 質問です Webブラウザのように実際的な短時間でサムネイル画像を取得したいです 1個ずつサムネ画像URLをアクセスしてると10秒くらいずっとだらだらアクセスしててなんか申し訳ないです (「申し訳ないのでスクリプトで取得すること自体を止める」ということは考えてないですごめんなさい) スレッドをいくつか生成してアクセスすれば同じように所要時間を短縮できますか?
339 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:20:59 ] このへんは一意な答がないんだよな 「多くの場合必ずしも好ましくない」というアドバイスが多すぎる 昔からの有名なものに「サーバ負荷考えてファイルアクセスのたびにスリープ入れろ」というのがあるが、 Keep-Alive全盛の今となってはクライアント側でスリープされて数十KBの接続を引き伸ばされるくらいなら 複数接続してもらってとっとと完了してもらって手放してもらえたほうがまだ有難かったりする
340 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:53:53 ] >>338 Rubyのスレッドってそういう動作時間縮める用途に使えたっけ?
341 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:00:46 ] IO待ちの間は他のスレッドに切り替わる…かもしれない
342 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:34:35 ] ttp://slashdot.jp/article.pl?sid=06/12/20/0854256 を思い出した >>338 Net::HTTP.start(host, 80){|http| # 各画像ファイルをこのブロックの中でGET } こんな感じで多分望みの挙動になると思う
343 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:42:39 ] require 'open-uri' require 'benchmark' uris = %w(www.yahoo.co.jp/ pc11.2ch.net/tech/ www.yahoo.com/ ).map{|e| URI(e)} Benchmark.bm(2) do |x| x.report{ uris.each do |uri| uri.read end } end sleep 2 Benchmark.bm(2) do |x| x.report{ threads = Array.new uris.each do |uri| threads.push(Thread.new { uri.read }) end threads.each{|thread| thread.join} } end # 結果 user system total real 1.150000 0.080000 1.230000 ( 2.655373) user system total real 1.210000 0.060000 1.270000 ( 1.583636)
344 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:52:01 ] 外部待ちがないぶん、スレッド使ったほうが全体としては速いな
345 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 00:21:01 ] そろそろNet::HTTP.startの中でThread#joinして意味不明の挙動に悩んでる頃なんじゃないかと思う
346 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 01:55:11 ] 変数名::メソッド という書き方に違和感を感じるとともに、Rubyらしさも感じます。
347 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 02:36:56 ] ?
348 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 10:14:30 ] てゆーか実はダラダラしてるほうが行儀正しいって突っ込みは無いのかよ
350 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 12:13:35 ] >>349 あなたの使ってるWebサーバの設定を見直してみることをお勧めする
351 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 17:51:26 ] java使いなんですがrubyに興味あって調べてます。 それで、rubyのホームにあるAPIは読みにくいので、どこかお勧めないでしょうか。 英語のサイトを探してもないみたいなんで・・ rubyはリテラルが多いので、少し使わないとすぐ忘れちゃうんですよね。
352 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:06:25 ] 刷新中の新リファレンスマニュアルはどう? ttp://doc.loveruby.net/refm/api/
353 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:08:17 ] と思ったけどリテラル一覧はないか。 これが見づらいということなんだよねぇ? ttp://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html
354 名前:デフォルトの名無しさん [2008/08/30(土) 18:21:25 ] APIはいつもみるんで、MSDNみたいにリンクが多いよりは、Java docみたいな単純なテキスト(とページ内参照 a.htm#ref)のほうがいいと使いやすいと思います。 1.9のそれも使いやすそうですね。 文章多めで説明長・解説つきなら英語でやった方がいいんじゃないですか。 で、日本語のは短い説明だけで、よくアクセスされる必要な記事・解説は、英語の翻訳で済ますと効率的な設計かなと思います。 もしjavascriptでfile i/oができるなら、rubyじゃなくて、jsつかうんで。なぜなら、言語の機能よりも、文章がまとまってるって事が大事じゃないでしょうか。 ルビリストとかモルモンぽいんじゃなく、まともな人なら、コレが妥当なところでしょうか。 www.ruby-doc.org/core-1.8.7/index.html
355 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:29:33 ] と、ここで提案してもしょうがないですし JavaScript使いたいならJavaScript使ってくださいとしか
356 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 18:30:55 ] C#とかDとかrubyはリテラル多すぎw 単純な制御とか処理はいちいちAPI探すの面倒だし、イテレーターつかわないんでwhile/forでいいよ。 OOも魅力的だけど、制御とか処理とかと関係ないし、肝心なOOのライブラリがないじゃんw
357 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:53:45 ] 昔VB5を少しだけやったときウィンドウに表示されてたんですけど rubyは違うんですか? プログラムは全くの初心者です・・・
358 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 20:57:09 ] ウィンドウはプログラム言語がわざわざ出力先として敢えて作っているだけです プログラムの基本は入力(と処理と以下略)と出力であって、 Rubyは入力だけを受け取って出力だけを行います てか何か解説とか入門とか読んで試してるんではないん?
359 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:04:41 ] >>358 Rubyの場合は出力先を指定しなければいけないのですか? メモ帳とか・・・? >>1 のたのしいRubyをこの前買って 疑問に思ったから書き込みました
360 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:41:54 ] >>360 挿入して削除したら、増えてないじゃん
362 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:46:38 ] イテレータの中で要素数を増減させるのはあんまりよろしくないよなあ javaだと例外飛んで怒られるくらいだし
363 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:15:09 ] 再帰的に、というのがわからんが、 単純に、 a = 0 while a < @i.size do ... a += 1 end と書けば?
364 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:31:23 ] >299 遠くからすみません。 そんな書き方できるんですね。 ありがとうございました。 でも、何で括弧がいるんだという辺りは よく理解できませんでした。 勉強します。
365 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:42:04 ] >>361 書き方へんなのでごめんなさい 回している配列が途中で条件によって増えていって そうじゃない場合は増えなくなるので最後には 配列がなくなってほしかったんです。 って書いてて意味が分からなく。。 >>362 何となく駄目ってのは分かるのですが 今作ってるやつだと それ以外思いつかなったので。 >>363 ありがとう 最後にretryつけたらそれでもいけたので 駄目だったらその方法試してみます。
366 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:26:55 ] ああ、配列の要素の値を元にした処理の結果で、配列の要素が増えたり減ったりするんだな で、新たに増えた配列の要素も、要素増減の処理に使うんだ …なんかどっか設計が間違ってるような気もするが…
367 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:43:19 ] スタックとかキューとか知ったら幸せになれそうなんだが違うのかな
368 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:25:17 ] よくよく考えると反復処理とは言えないようなことを、イテレータでやっちゃうもんだから ややこしいんじゃないか
369 名前:360 mailto:sage [2008/08/31(日) 01:39:14 ] >>366 ,367,368 精進します。 とりあえず動くっぽいので動いてから 設計見直してみます。
370 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:32:49 ] 設計とか言う言葉を使うレベルじゃないと思うんだけど?
372 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 07:57:05 ] >>372 jcodeをrequireしてjsize/jlength 内部の実装は知らんがsize/lengthは同じだろ
374 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:31:10 ] すまん、アンカーつけ忘れた。 >>375 は>>252 >>376 は>>277
378 名前:デフォルトの名無しさん [2008/08/31(日) 21:31:49 ] 初心者なんですが質問です 処理を書くとき、classにした方が素敵ですか? イテレータはeachの繰り返しにしか使ってないのですが 他に便利な使い方はありますか?
379 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:46:40 ] > classにした方が素敵ですか? メソッドにしないと非常にかっこ悪い オブジェクト指向におけるクラスの概念はわりと高潔なものだが、 Rubyでは「処理をまとめてnewメソッドでスタートさせるもの」でもいいと思う 特に初心者のうちはクラスの使用条件というものについてうだうだ悩むのは無駄 てきとーにまとめて便利に使いながら自分で考え方見つければいい あと、eachは基本だが、mapとfind_allの使用頻度と便利度は異常なので、 EnumerableやArrayクラスのメソッドはなるべく早く把握して適宜調べて使えるようになるといい
380 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:08:58 ] >>378 >処理を書くとき、classにした方が素敵ですか? 基本的にはclassにした方が素敵 どこからどこまでをclassにするかは、プログラムの目的や個人の趣向などによる 慣れないうちは設計が難しいので 分かりやすいデータのまとまりを、class化することから始めるのがオススメ 掲示板の1記事をArticleクラスにするとか
381 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:20:13 ] >>378 繰り返しじゃないから厳密にはイテレータの話じゃなくなるけど IO#openみたいに後始末を自動でしたいときにも便利
383 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:22:21 ] >>382 それ関係ないだろ 単にensure節の効果だ
384 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:22:48 ] メソッドもクラスもしくはクラスもメソッドだったらいいのに
385 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:32:32 ] たかがメソッド実行するたびに new する言語なんて遅くてやってられねえぞ
386 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:40:10 ] >>381 def method(*para) は引数がまず配列になるからな キーワード引数風ハッシュの処理するのもけっこうめんどくさい なんかうまいライブラリとかないもんかね
387 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:55:49 ] >>381 def h(a, *b) でいいんじゃないの?
388 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:52:11 ] >>386 ActiveSupportを使うと、*argsで受けて、options = args.extract_options!
389 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 01:48:09 ] feed-normalizerってどうですか? 検索してもほとんど情報が出てこないんですが
390 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 02:41:35 ] perlおぼえたあと、 PHPとRubyでは、 どっちを学んだら相性いいですか?
391 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 03:52:48 ] >>390 そりゃここじゃなくてperlのスレで聞きなよ その時は「相性」という言葉を、どういう意味で使ってるのかも添えといた方がいい
392 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 06:55:48 ] perlおぼえたら、perlを使うんじゃないの?まずはプログラムやりたいみたいだし、簡単だからVB.NETやるといいよ。
393 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:21:08 ] んなもんなんのためにPerl覚えたかによると思うが。 趣味だってんなら好きにしろ
394 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 08:47:10 ] >>390 WebやりたいならPHP、小物アプリならRuby 本格的アプリならJavaやC#
395 名前:デフォルトの名無しさん [2008/09/01(月) 10:32:08 ] それ、全部VBでいいんでない?
396 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:46:23 ] 全部common lispでできるよ
397 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 10:58:01 ] >>390 順番に意味はない。
398 名前:デフォルトの名無しさん [2008/09/01(月) 11:11:56 ] >>394 ぜんぼ覚えるの大変だなw C++は習得できなかったからないの? JRubyがあるから、今のうちにJavaかな。
399 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:05:30 ] サーバーサイドC++ってごっつすぎだろ
400 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 20:47:46 ] >>390 結論からいうとPythonを覚ればそれでなんでも出来る。 軽くて速くてソースが美しいPython。文書も豊富でライブラリも充実してるPython。 仕様はかっちり、世界規模で開発されているPython(Google, MS, Yahoo!, etc.) オープンソース系ならほぼもうPythonが事実上の標準言語になってる。 日本だけで閉じこもってて、遅くてソースが汚くて開発もいい加減なRubyとかやっても 無駄に終わる可能性があるよ
401 名前:デフォルトの名無しさん [2008/09/01(月) 21:36:57 ] ソースが美しい・汚いとは、例えばどういうソースのことだ
402 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:39:56 ] 読み難い、読み辛いって読み替えればいいんじゃね?
403 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん [2008/09/01(月) 21:59:23 ] 読みやすいかどうかなら、記号が多いよりもJavaやC#のように長いメソッド名のほうが読みやすいんじゃないの? もう、パイソンと関係ないけおd
406 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:08:05 ] [:a, :b, :c] は何か意味あるの?
407 名前:デフォルトの名無しさん [2008/09/01(月) 22:10:44 ] >>406 ないです。単にシンボルの方がタイプ数が少ないという理由です。
408 名前:デフォルトの名無しさん mailto:sage [2008/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 [2008/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 [2008/09/01(月) 22:32:02 ] あーすみません。また書き間違った上に、なんか根本的に誤解してる>自分 出直してきます。
411 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:41:51 ] >>407 タイプ数が少ないって何のこと?
412 名前:デフォルトの名無しさん mailto:sage [2008/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 [2008/09/01(月) 22:50:04 ] ほんといろいろすみません。 >411 文字列じゃなくシンボルを使った理由を聞かれているものと勘違いしました。 >412 なるほどやっと分かりました。 というか、探したらちゃんと書いてあった・・・orz www.ruby-lang.org/ja/man/html/trap_Hash.html
414 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:22:22 ] >>413 rubyのhtml help入れれ
415 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 03:07:58 ] パイトンはやったことないからわからんなぁ。
416 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:11:21 ] infoってメソッド名がおかしいんだよ writeに改名しろ
418 名前:416 mailto:sage [2008/09/02(火) 17:17:46 ] logger.rbを見たら 'dairy' じゃなくて 'daily' だった.あー恥ずかしい. しかし引数間違っててもスルーって不親切だよなあ
419 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:21:31 ] ruby厨きめえwwwwww これからはpythonの時代だろks うぇwっうぇwwwww
420 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:33:45 ] Rubyだけ使ってるとでも思ってるのかね
421 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:34:42 ] 煽っているようでちゃんとsageているところに 育ちの良さがにじみ出てしまっているな
422 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:37:31 ] >>420 そうじゃないと都合悪すぎるだろ やろうと思えば複数言語の比較検討ができるとか断じてあってはならない
423 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:41:19 ] 釣れますか?
424 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 17:47:22 ] 結局rubyなんてwebProgでしかないし、pythonのほうが将来がある
425 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:27:19 ] ルビみたいにメインストリームの横に張り付いているちっぽけな貧乳は今後成長する可能性も2.3%くらいあるが、 醜く大きくなったおっぱいそんは後は垂れるだけ。
426 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:43:07 ] だっておwwwwww
427 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 18:57:20 ] どうでもいいけど最近貧乳の良さが分かってきた
428 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:16:15 ] 俺は最初から貧乳が好き
429 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 20:36:26 ] もともと巨乳好きだが最近貧乳にも興味あり
430 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:07:59 ] 何つうか、適材適所を知らない奴はPythonあたりでもダメなんだろうな。
431 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:13:21 ] Pythonの威を借るDQN
432 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:31:36 ] 虎ってか蛇か
433 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 22:32:23 ] 恋するプログラムを読み始めたんだけど、2−2最初のサンプルからつまづいた・・・ 「ワンツー」と日本語が入力できないんですが、どうしたらいいですか? 半角英数しか使えないよ
434 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 22:35:35 ] コマンドプロンプトならAltを押しながら、半/全キーだったかな
435 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:04:50 ] 企業や学校の場合はconime対策でそもそも日本語入力機能が無効にされてることも稀にあるので注意だ ちなみにタイトルバーを右クリックすると編集用のショートカットキーコンボがわかるので利用するといい
436 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:17:02 ] 下手に最初から日本語使って予期せぬエラー増やすよりも 慣れるまでは全部半角英数でやるのが無難
437 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 00:17:24 ] >434 ありがとう。解決しました。 >435 よくわからない。 範囲指定(K)ってあるけどシフト、ctrl、altと組み合わせても発動しないし というかセーブする方法がまだ出てきてなくてこの先生きのこれるか心配です
438 名前:デフォルトの名無しさん [2008/09/03(水) 00:20:43 ] 俺たちの先生は、キノコだったのか!!
439 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:09:46 ] >>437 えーとだな、コマンドプロンプト(DOSプロンプト)は、Alt+スペース で右クリックメニューの1階層目が開く で、Eを(単独で)押すと編集メニューがさらに開いて、貼り付けとかが選べる たとえば、クリップボードにあるURLを貼り付けたい場合は「Alt+スペース、E、P」の順にリズミカルに押せばいい で、範囲選択だが、これは「Shift+方向キー」でコピー元の範囲選択を矩形で開始できる機能だ コピーしたい部分を選択し終わったらEnterを押すと、それまでの反転部分が改行つきでクリップボードに入る ぶっちゃけ使用頻度は高くないし、マウスで範囲を選んでEnterすれば同じことなのでありがたみも薄い
440 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:21:06 ] rubyのCPANはどこにあるの?
441 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:27:58 ] CPANはPerlの(以下略 Rubyforgeをgemコマンドで利用するのがデファクトスタンダード CPANほどには洗練されていないし、CPANほどには無闇大量に登録されてない(そもそも少ないというかPerlが異常) Windows版Rubyなら、最初からgemコマンドが使えたはず LinuxとかBSDとかの場合はrubygemsのような名前のパッケージがあると思われ
442 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:31:52 ] サイトとしては存在してないってこと? ブラウザでみれるようなの。
443 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:32:39 ] ああサイトはあるけど 利用の形態はgemコマンドということね。
444 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 01:33:57 ] >>442 rubyforge.org/ # rubyforgeでぐぐれ、と書こうとしたが、ぐぐったらトップが出てこなかった。
445 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:10:12 ] 拡張ライブラリを作ろうと思ったんだけど 解説してるサイトに書いてある「$ make」の意味が分かりません。
446 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 09:16:33 ] >>437 xyzzyでshell起動すると、エディタ画面でコマンドプロンプトが使えるよ。 Alt+x → 'shell' と打ってリターン
447 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 10:15:09 ] >>445 makeコマンドを実行しろってこと。
448 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 11:06:53 ] まあCとRubyでのプログラミングはできるわけだし、それくらいの推測はできて欲しいよな make は UNIX コマンドだ(語弊あり) UNIXやらLinuxやらにはたいてい入ってるが、Windowsには普通入ってない make だけをどっかからインストールするといいが、 プロンプトが $ であるところから見て、そのサイトはWindows考慮してないんじゃないかとも思う
449 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 11:20:50 ] まぁ、要するに仮想マシンかなんかにLinux(語弊あり)を入れた方がいいってこった
450 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 11:22:39 ] Linux以外でRuby使う奴って馬鹿だろ?
451 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 11:27:27 ] ううん そうでもないよ
452 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 13:28:27 ] FreeBSDで使ってますが何か?
453 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 13:54:40 ] BSDは基本でしょwww
454 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:08:53 ] >>453 kwsk
455 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:12:44 ] いや、今はMacOSバージョンXでしょ。 実質的にBSDの商用GUIバージョンのヂストリブーションだしwww MacOSXはINTELもあったんじゃなかったか?
456 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:17:51 ] つまんねえ
457 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:18:01 ] 本物のハッカーはソラリスじゃないの?x86あるし無料だし。 FreeBSDの設定とかよりソラリスをHPで紹介してるのとか凄くない?
458 名前:デフォルトの名無しさん [2008/09/03(水) 14:30:33 ] ブリヂストン?
459 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:30:35 ] >>456 変なの居ついたよな 当人はスレに参加しているつもりなのだろう
460 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 14:58:43 ] そうやって排他的だとperlみたいにコミュニティーが宗教っぽくになっていくと思わないか?
461 名前:デフォルトの名無しさん [2008/09/03(水) 15:01:31 ] rubyはもともとモルモン教なんだが? あの貧困層の宗教で有名なモルモン教だからrubyの洗脳はperlよりもひどいよ
462 名前:デフォルトの名無しさん [2008/09/03(水) 15:02:44 ] 実際のところ、モルモンも創価学会とドッコイだろww
463 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:11:24 ] perlと比べれば、rubyは後発だけあって現状の要求をみたしている言語としての出来はいいんだけどな。
464 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:21:48 ] >>460 どっちかってえと公平に受け入れよとわめくほうが宗教っぽい
465 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 15:35:52 ] 惑星ソラリスは破壊されたんじゃ?
466 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 17:56:58 ] おメーラいい加減にせえよ スレ違いにもほどがあるw
467 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 20:40:34 ] すいまメ〜ン!
468 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:18:20 ] SonOS 4.1あたりまでの人にとってはSolarisはまがい物なんじゃなかろうか。
469 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 21:40:09 ] >>900 までこのスレはOSの話! Rubyは別でどうぞ(違
470 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:10:11 ] 日本語が化けるだけならwin32oleはたぶん関係ないな
472 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:18:31 ] 「Excelを読み込む」という表現に危機感を感じる ダブルクリックするとExcelが起動するからExcelだと思ってる人が日本中に10万人くらいいるがその類かもしれん csvファイルやtsvファイルも読めるわけで、端末文字エンコードとあってないファイルの場合は当然化けるぞ
473 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:29:19 ] どんな日本語がどう化けたか書きなさいって
474 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:43:56 ] >>473 発生日 名称 マグニチュード 死者・不明者 死者の有無 ↓ , , } O j ` [ h, ҁE s , ҂̗L こういう感じです
475 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:51:50 ] そうして>>471-472 を無視する
476 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:54:21 ] 単に文字エンコードやExcelが扱うファイルの知識がないんだろう Ruby以前の問題だな win23oleはRubyほとんど関係なくて、Windowsプログラミングの知識が大量に要るぞ
477 名前:デフォルトの名無しさん mailto:sage [2008/09/03(水) 23:59:14 ] なんにも知らないくせにw
478 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:03:00 ] 煽ったってこれ以上は別に出ないぞ
479 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:04:04 ] WIN32OLE.codepageを変えてみるとか
480 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:10:51 ] 読めてる以上、文字コードだけの問題だしなあ まさか本当にUTF-8のCSVファイルだとかそんなオチだったり
481 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:11:18 ] FreeBSD使ってる人は、やっぱりSunOSも知ってる人なんじゃないの? その流れでソラリスに辿り着くか、派手好きはMacOSXかなってことなんだけど。 デビアンはイマイチゴチャゴチャだし、オープンで英語得意なら、やっぱFreeBSDのままかなw そういえば、物理学科のハッカー先生元気かな…
482 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:15:58 ] MacやLinuxは女々しい奴か宗教家ぶれの奴しかいないけど、BSDは本物のハッカーしかいない。 別板にある犬小屋スレ見ればわかるだろw windoはエサ待ち状態のサルばかりか?
483 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:18:41 ] とりあえず Excel 2007 で直接日本語を入力して xls および xlsx 両方で保存した上で >>470 をコマンドプロンプトからそれぞれ実行したが、特に文字化けはしなかった。 cell.Value から返るのは Shift_JIS だから、あとは表示環境の問題かと。
484 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:20:46 ] >>479 WIN32OLE.codepageをUTF-8にしてみたら正常に出力されました ありがとうございます 文字コードが正直さっぱりわかってないのでもっと勉強します。。
485 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:24:46 ] スクリプトがUTF-8なのかね
486 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 00:30:54 ] おお、勘でアドバイスしたら当たったぜ
487 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 01:29:06 ] エスパー覚醒おめ
488 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 08:26:31 ] >>481 BSDが染みついた人ならソラリス(2以降)にたどり着いたらUターンするだろJK
489 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 09:09:46 ] 今の時代x86で十分だし、そうするとwinかbsd/linuxでしょ。 3Dの凄い計算とか気象予測みたいなのが必要なわけでもないし。 ただ、PCを部屋に5台以上おくとクーラーとか空調もやんないといけなくなるし、PC技能とは別問題に遭遇する。
490 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 09:14:26 ] じじいは隔離スレにカエレ
491 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 09:55:38 ] >>490 当人はスレに参加しているつもりなのだろう
492 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:06:20 ] rubyはモルモンじゃなくて、エホバじゃなかったか? あの、デザインパターン本のキリスト教の人と同じで。
493 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:07:57 ] モルモンです。
494 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:26:08 ] 結城さんはモルモンなの?
495 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 10:26:38 ] プロテスタントのクリスチャンというのが怪しいよな 日本でカトリック以外なんてエホバか統一教会だし
496 名前:デフォルトの名無しさん [2008/09/04(木) 12:21:27 ] rubyは型の宣言は不要なんですけど、実際はメソッド呼び出した後、何の型が戻るのか分からないと 次の操作が出来ないので、なんだかやりにくくないですか? 特に正規表現で引数とか戻り値がいろいろあるので、結局はOOだと型の明示が必要なのかなと思っちゃいます。エラーでも型の注意が入るし。 とにかく =~ とか $~ の旧世代のレガシーはもうOOじゃないし、廃止して欲しい。
497 名前:デフォルトの名無しさん [2008/09/04(木) 12:22:13 ] と思いませんか?
498 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:24:23 ] javaでも使ってろよ
499 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:29:09 ] 配列に正規表現がマッチするわけないし 数値に正規表現がマッチするのは変だろ result = str.scan(re) でいちいち配列の配列が返ってくるのはなんか違わね? というのは確かに連綿と指摘はあるが まあそれなら re.match(str) で MatchData オブジェクト使えばいいんじゃねという話ではある
500 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 12:37:48 ] その辺りはマニュアルにしつこく書いとくと、日本人ならrubyに流れるんじゃないですか? =~ [] MatchData String Regexp とかどれなのか覚えて整理するのに1日使ったんで。 perlよりはまとまってるみたいですけど、perl awkのしがらみでもあるんでしょうかw 触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
501 名前:デフォルトの名無しさん [2008/09/04(木) 12:39:24 ] というか、連綿とかムズカシイ言葉知ってますねww
502 名前:デフォルトの名無しさん [2008/09/04(木) 12:54:31 ] 開発者たちは、数学知ってるんだろうし、多価返却はダメだってことを分かってると思うんですけど。 既存の=~ $~ とか、class Regexpはそのままで、新規にruby regexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか? あれこれクラスにまたがっていて、まったく意味不明でした。 $~はスレッド・ローカルみたいですけど、OO的というかスレッド的に馴染まないというかどうかと…
503 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:03:28 ] >>502 お前実際にはスクリプト書いてないだろ
504 名前:498 mailto:sage [2008/09/04(木) 13:05:00 ] >>502 っ【ソースコード】 っ【直談判】 っ【>>499 】 なんかスレのターゲットから超えてる気がするw
505 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:09:34 ] >>503 ,504 いや、別に初心者じゃないんでw
506 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:14:11 ] 以上、壮大な釣りでした。
507 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん [2008/09/04(木) 13:34:36 ] リテラルも多いし、返却値もいくつものクラスにまたがっていて、さらにデバグの出力先もいろいろあって、忙しい言語ですね。 これでも十分複雑なんで、半年も触らないときっと忘れちゃいますよ。 javascriptの方はプロトタイプ言語で少し概念が違うんですけど、ほぼジャバと同じだし半年しても忘れることはないでしょうな。 OOとかクラスについてはjava使えるんで、regexpは、jsでIO使えるならjsでいいかなってのが感想ですw
509 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 13:56:38 ] じゃあJavaScriptスレに行ってください。 このスレは2度と見る必要ないですよね?
510 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 14:20:33 ] 本屋で見かけた初めてのRubyが第3刷だった件について
511 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 15:00:02 ] よい本が売れるのは問題ない 店によっては入った週に売り切れたりするのは立ち読みしにくいのでやめてほしい
512 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 19:28:04 ] >>507 >あと意味不明だったのは、 >p=>Object.inspect >puts=>to_a=>to_s >print/printf=>to_s > >だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。 この書き込みのほうが意味不明。どれもマニュアルにそのまんま書いてあるんだけど、マニュアルをどうして欲しいの?
514 名前:デフォルトの名無しさん [2008/09/05(金) 01:20:25 ] pack/unpack の指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして 意味を含めてくれませんか?パブリックなライブラリなわけで、自分仕様のライブラリじゃないでしょw パールのしがらみをもったままなんでしょうけど、このままだと第2のパールに成り下がるだけじゃないですかね。 regexpは別言語でもできるんですけど、ネイティブへのアクセスは、POSIXの機能が結構使えるルビーが(グルーとしては)一番かなって思うんですけど、この辺りどうでしょうか?
515 名前:デフォルトの名無しさん [2008/09/05(金) 01:22:10 ] それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。 ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
516 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:22:11 ] >>514 お前実際にはスクリプト書いてないだろ マニュアル逐次読みしながら論う釣りは帰れ
517 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:31:15 ] 自 分 で 作 れ
518 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:48:04 ] >>516-517 コードを書こうとして、packの機能を使おうとしたら「複雑すぎw」てことじゃないの?まあ、サルにはこの気持ちは一生理解できないんだろうけどw
519 名前:デフォルトの名無しさん [2008/09/05(金) 01:53:41 ] pack/unpack は機能が豊富だから独立したクラスにして欲しい。1.9のfutureで頼んます。
520 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:58:07 ] packはあれはUNIXそのままが一番わかりやすいしなあ 正規表現が全くオブジェクト指向じゃないとか sprintfやstrftimeのフォーマット文字列が意味不明だと文句言われるのと 割と似ていると思う
521 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 01:58:09 ] >Ruby 1.9.1の仕様は9月25日で凍結されます 急げ
522 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:10:16 ] 急いでないんで、1.9.8まで待ちますw printfはインタプリタなんで、packの引数による機能指定と、全然関係ないと思うんですけど? APIも仕様も熟読しないような、ナンチャッテさんはその程度ですかw
523 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:16:40 ] >>520 るびまで青木さんが、 packの書式なんて誰も覚えてねーよバーカバーカとか書いた上で 自前で簡単なDSLを定義してたようなw
524 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:24:10 ] なんか、rubyが旧世代のダメ出しされてるってかんじーww
525 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:41:14 ] >printfはインタプリタ 詳しく説明願います
526 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:45:10 ] あなたが勉強不足なだけなんでしょうな。
527 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:55:19 ] 初心者スレで粋がるのがかわいいじゃないか
528 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:58:22 ] 仕様に対する不満はスレ違いだ。本スレかアンチスレにでも行け。 つーか、メーリングリストで言えよ…
529 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 02:59:55 ] メーリングは、「あーでも、こーでも」いってて皆でモルモンしてるじゃんw
530 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:03:46 ] API君の日本語が意味わからなくて、対応に困ります
531 名前:デフォルトの名無しさん [2008/09/05(金) 03:05:22 ] 本スレってあそこか。 業界通っぽくしてるサルばかりじゃないの? 所詮下請けにかわりないし、愚痴ってるだけで、BSDじゃないけどサル小屋かなww
532 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:06:15 ] 日本語でおk
533 名前:デフォルトの名無しさん [2008/09/05(金) 03:10:37 ] >>529-532 はいはい。IPAが男女共同参画会議に出席するようですよ。
534 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:12:38 ] ボクちゃんは賢いですねー おりこうさんだからv8でもいじって、遊んでましょーね
535 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:15:12 ] >>527 そうやって羨ましがってばかりいないで、少しはプログラミング言語 Ruby に貢献したらどうよ? どうせおまえみたいな無能は、指くわえてみてるだけじゃないの??
536 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:18:12 ] IPAは税金ばっかり使って、結局フォントだけが成果物じゃん。もう国がサポートすることもないし、解散でいいよ
537 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 03:19:21 ] 誰が何の話してるかわけわからんぞ
538 名前:デフォルトの名無しさん [2008/09/05(金) 03:20:12 ] はいはい。ここは初心者スレなんで、愚痴は「サル小屋」でやってくださいましww
539 名前:デフォルトの名無しさん [2008/09/05(金) 03:43:25 ] あのー、IPAでいいんで、漢字コンソール(KONのクローン)作ってもらえまんせか? konが今となっては機能不足なので、freebsd入れずにwindows使う羽目になってるんですが。 英語には不自由はしてないんですけど、クライアントの送信とかログとかも含めて開いたファイルの中身が文字化けしたら何のファイルなのかさっぱりなんで、漢字端末よろしくです。
540 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 04:38:04 ] ジャバとかルビーとかパールとかカタカナ表記が流行ってるんですか
541 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 04:43:48 ] >>539 使ったことないけどjfbtermとか
542 名前:デフォルトの名無しさん [2008/09/05(金) 12:09:44 ] jfbtermはポーツにあるみたい
543 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:19:21 ] konって何年前だよ。ほんと生きた化石みたいなやつだな。
544 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 12:21:30 ] konの表示は当時からしょぼかった・・・やっぱ資本の差かな・・・フォントの次はIPAさん、俺からも頼のんます
545 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:11:37 ] おっさんは引き際というものを知らんな
546 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:58:37 ] カタカナ表記で書いてる奴は基本的に釣りでしょ。
547 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 22:35:11 ] ルビー
548 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 00:30:31 ] >>514 >pack/unpackの指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして >意味を含めてくれませんか? これは無理です。printf()の書式とおなじようなものだと考えてください。 あなたがprintf()の書式にも文句言う人だとどうしようもないですが。。。 >>515 >それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。 どうも正規表現あたりのクラス設計に不満があるようですが、どういう設計をお望みでしょうか。 String, Regexp, MatchData の3つがあるのは Javaでも同じですが、どこがわかりにくいですか?またどう変更してほしいのですか? >ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。 言っていることが意味不明なので、わかりやすく書き直してください。
549 名前:デフォルトの名無しさん [2008/09/06(土) 04:01:49 ] なんだこいつ?新手の荒らしか?
550 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:29:03 ] require/includeでクラスやモジュールを使いたいのですが、 ruby "-I c:\myruby\mylib" source.rb とやってソース内部でrequire/includeとやってもロードされてないようです。 何が足りないんでしょうか?
551 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 04:51:35 ] >>548 おまえが無能だって事はよく分かった。
552 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 05:03:00 ] 頭が良いが性格は悪い、というキャラを目指す奴の大半は どっちも悪いキャラに終わるよな。
553 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 05:25:14 ] >>552 どれとどれが「どっちも」ってのなんだ? これだけで、おまえが低学歴なのがよーく分かるw
554 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 05:45:12 ] 目の前の文章の意味すらわからないのに、 目に見えない色んなことは次々と「わかっちゃう」のも 特徴の一つだね。
555 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 06:41:29 ] 低学歴は夜間の大学を受験したらどうだ?学歴でバカにされるの嫌だろw
556 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:27:04 ] ロジックとかは経験でカバーできます。
557 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:34:40 ] >>552 カンベとかルビキチとか。
558 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 08:57:57 ] >>556 そうすると、経験でカバーできないのはなんでしょうか?
559 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 10:44:41 ] >>550 サーチパスにC:¥myrubyを追加して、そこからmylibをrequireするなら、 ruby -I C:¥myruby -r mylib source.rb
560 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん [2008/09/06(土) 11:27:24 ] 関数とカッコの前後に空白どうとか言う警告を削除してもらえませんか? obj . push ( a , b ) じゃ言語としてダメでありサポートしないのか、それともいいのかハッキリしてもらえませんかねー こんなところまでモルモン思想の押し付けをワーニングするのはもう止めませんか?ウザいんですけどw
563 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:34:32 ] >>561 スクリプト1行目のShebang行は規則に則った単なる文字列だ シェルで実行されるわけではない シェルと同じ動作をすることを期待されても困る
564 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 11:57:30 ] お前らが優しいのは十分わかったから、いい加減かまってちゃんの相手をするのはやめてくれ
565 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:02:05 ] ライブラリの設計が悪いんだろw
566 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:12:43 ] ここんとこ毎日初心者スレにくるところをみると、どこでも相手にされてないようだな。
567 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:15:47 ] というよりも、戻り値の型で p nil==false # false は勘弁して欲しいけど。 このスレのレベルだと、どうしてなのか分からないんだろうと思う。
568 名前:デフォルトの名無しさん [2008/09/06(土) 13:17:36 ] ルビーは犯罪者も使ってるんですよ!刑務所の犯罪者たちにエサを上げないで下さい!!
569 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:22:22 ] 本スレのITドカタたちよりは技術的な質問が多いな。あのスレはカスばっかりでもうダメだろ…
570 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:25:40 ] たしか…
571 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:40:21 ] >>566 おまえもスレに張り付いて、いったい何やってんだ?仕事もしてないんだろw
572 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:46:21 ] それが罵り言葉になる環境にいるなんて可哀想
573 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:46:56 ] 土方は蔑称だから使っちゃダメだよ。
574 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:47:30 ] 571は今日が土日だということを理解できていないらしい
575 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:47:49 ] 宇宙大王の言い分 このスレ: 低学歴・無能の集まりなので分かってくれない ML: モルモンなので分かってくれない リアル: 大人は分かってくれない アドバイス あなたを分かってあげられるのはあなただけ。自分を大切にしてあげて。
576 名前:デフォルトの名無しさん [2008/09/06(土) 13:52:49 ] はいはい。もう分かったから死ね
577 名前:デフォルトの名無しさん [2008/09/06(土) 13:56:57 ] rubyを使うようなのはwebクーチャーとか言う職業の人たち、つまりITドカタでしょwwww たーまにbsdとかも使ってるシステムの奥の方の人も居るけどwwwww 2chでIPAの愚痴を言うようじゃ、仕事も大したことやってないし、せいぜい雑用係のカス野郎ってことが良く分かるwwwwwwwwカスw
578 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 13:58:32 ] いや、IPAは無駄だろ。除法処理技術者の資格をもっていても、もっていなくても、別に金にならないし。
579 名前:デフォルトの名無しさん [2008/09/06(土) 14:14:12 ] WEB開発とか雑魚だろ。しかも文系でどこにも就職出来なかったような雑魚だしな。 べつにrubyのCソースを追いかけてるわけでもないし、なんか生意気な奴が多いようだけど、雑魚だろw いちど、みっちりCをやって、GCのソースとか見てみたらどうよ?雑魚ちゃんww
580 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:16:05 ] そんな雑魚相手に弱いものいじめしなくても…彼らは雑魚なりに一所懸命生きてるんだからさ……
581 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:19:16 ] >>340 いやいや、デンターシステマ超極細毛(かため)以外認めんぞw
582 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:23:01 ] 僕だってれっきとしたWEBクリエーターだ!クリーチャーじゃないぞ!!
583 名前:デフォルトの名無しさん [2008/09/06(土) 14:26:09 ] 弱いものいじめ反対! いつか必ず天罰が下るぞ!!
584 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:37:10 ] >除法処理技術者 煽りじゃなく「割り算のプロ」っぽくていいな。それ。
585 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 14:41:13 ] >>581 君、いつもつまんない
586 名前:デフォルトの名無しさん [2008/09/06(土) 18:10:54 ] s="あい"#sjis puts s.dump dump以外に、 ”あい”を文字コードの列(配列)にするのと、 その配列から”あい”(SJIS)に戻す方法はどうやるのでしょうか。
587 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 18:45:25 ] dumpのどのへんが不満? バックスラッシュが邪魔? 配列にならないところ? 数値が8ビット整数じゃないところ?
588 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 19:12:45 ] RUBY_VERSION >= "1.8.7" だったら [*str.each_byte] とかかな
589 名前:デフォルトの名無しさん [2008/09/06(土) 20:02:53 ] あのーバイト列(特にバイト配列)からStringにするにはどうするんでしょうか? packとかは無しですよw
590 名前:デフォルトの名無しさん [2008/09/06(土) 20:04:01 ] dumpは、戻り値がStringなんでArrayじゃないし、たぶん外部用(serialization)じゃないですか? なので、関数内部のローカルで処理する用途とは少し違います。 とくに、str[k]="あ"というかんじに出来るのないでしょうか? 結局ルビーは、パールと同じで日本語(多言語)対応じゃないしなんか使いにくいのでどうせなら、 jcodeでStringにアドオンなんかしないで組み込みクラスをrubyの方が用意したらどうですか? class JapaneseString とかかな。
591 名前:デフォルトの名無しさん [2008/09/06(土) 20:06:07 ] str.setJavaneseCharCodePointAt(index, "あ"); APIはこんなところでしょうか。
592 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 20:14:52 ] 不覚にもJavaneseに吹いた でも初心者スレを荒らすのは勘弁してね
593 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 20:20:11 ] javaを語る人はjavanese
594 名前:デフォルトの名無しさん [2008/09/06(土) 20:39:48 ] いやいや、マジで困ってるんですが… serializationは、dumpのStringはrubyだとtaint/untaintの腐ったレベルに影響あると思うんでdumpは外部用だと思います。 それでdumpは使えないので、他にsjis, euc, u16, u8とかの一文字をstrに追加できるセッターないですか?
595 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 20:49:09 ] matz.dump # ダンプ松本
596 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 20:58:56 ] Matzは神ですけど、matz は orz みたく凹んこで反省してるように見えませんか?
597 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:02:05 ] [*str.bytes] ↑↓ bytes.map{|b| b.chr }.join だろうか
598 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:44:48 ] Javaneseってジャワ語という意味だったな
599 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 21:57:48 ] >>589-591 , 594 まず目的として何がやりたいのかを説明しろ そこがわからないと適切なアドバイスもできん
601 名前:600 mailto:sage [2008/09/06(土) 21:58:56 ] ごめんね、スルーしなかった俺が悪かった
602 名前:デフォルトの名無しさん [2008/09/06(土) 22:01:48 ] イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、 StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。 といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。 とくにbyteとchar用のsetがないじゃん。
603 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 22:08:42 ] 1.9使えばいいんじゃね?
604 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 22:22:14 ] そろそろ飽きた
605 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 22:33:11 ] [*"foo".bytes].map(&:chr).join # => "foo" なにコレ?
606 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 02:02:43 ] >>567 nil に対する比較演算は nil を返してほしい口? つうか、なんで勘弁してほしいわけ?
607 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 02:35:21 ] 全てがオブジェクトじゃなくていい派でしょ
608 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 03:13:47 ] >>602 >イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、 >StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。 どこをどう見て、そう判断したんですか。 >といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。 >とくにbyteとchar用のsetがないじゃん。 Ruby1.8では、文字列はただのバイト列なので、Javaのように文字単位での扱いはあまり得意じゃありません。 ただ、文字単位で扱わなくても済む場合がほとんどなので、あなたが「1文字ずつ扱って何をしようとしているか」をまず書いてみてください。 きっとだれかが、1文字ずつではない処理方法を提示してくれると思います。 それから、全般的に日本語に不自由されているようですが、もっと人に伝わるような文章を書いてください。 エスパーするにも限度があります。
609 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 03:25:03 ] >>606-608 >>564
610 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 04:00:37 ] >>608 質問者に、質問し返す人いますが、あなたは少ししつこい。 あなたのプログラミングスタイルと全く違う人もたくさんいるんですけど、あなたは一生Webクリーチャーでいいんで、黙っててくれませんか? 一文字の処理を所望なのに、一文字の処理じゃない方法を提示する必要はないでしょ。 あなたに仕事を任せても、全く仕様を読まないでいつも失敗ばかりしてるんだろうと思うんで、あなたはその辺にいるゴミか何かでしょうか? とにかくVBとかの方が儲かりますよ。
611 名前:デフォルトの名無しさん [2008/09/07(日) 04:10:34 ] >エスパーするにも限度があります。 >>608 を読んでみても、おまえが無能なのがよく分かるな おまえのエスパーなど誰も期待してないけど?
612 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 04:13:57 ] たぶん>>608 は低学歴で脳みそ文系ちゃんだから相手しちゃダメ。 いつまでもこのスレに居座っていてみんな迷惑してんだからw
613 名前:デフォルトの名無しさん [2008/09/07(日) 05:38:13 ] >>608 モルモン教に入信したいなら、まずは創価学会を脱退してからですよ。
614 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 05:45:54 ] >字単位で扱わなくても済む場合がほとんどなので split(//)とかで結局文字単位になるんだし、文の前後が矛盾してるじゃん。 こいつは何のことをいってんだ? それと、Javaは文字単位char[]でなくてStringで処理しますが、知らないことに無駄口しない方がいいんじゃないですか? 日本語の文法から勉強なさった方がいいんじゃないですか。
615 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 05:55:02 ] だから文系プログラマーにかまうな。思考盗聴されて頭おかしくされちゃうぞ!
616 名前:デフォルトの名無しさん [2008/09/07(日) 06:31:32 ] 思考盗聴か…層化じゃ当然だよな……
617 名前:デフォルトの名無しさん [2008/09/07(日) 07:01:15 ] 仕事してんのに一人でも女がいるとホント面倒だよなwww 女は端っこでマンコの手入れでもして、いつでも準備OKにしてればいいんじゃね?
618 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 08:17:32 ] >>608 落ち着け こんな時は冷静にスルーだ
619 名前:デフォルトの名無しさん [2008/09/07(日) 09:13:37 ] さすがにプログラマに女はいないだろw 数学の女、哲学の女、以上にキモイな。 仮に想像したとしても、頭モサモサのフケだらけ、体臭はニンニク臭いなんじゃないの? そんなキモ女はどこで道を間違っちゃったんだろうな…
620 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 09:22:41 ] catch io exception
621 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 11:31:25 ] >>617 俺もそう思う。 まず連中は論理的に説明しても理解しない。「できない」じゃなくて「しない」なんだよ。 生意気にも「いいじゃないですか〜」とか言ってて許されるとか思ってる。 「俺が上司なんだよ!!!なめんなよ首にすんぞ」 とか思っても労働法違反になるので言わないです、ごめんなさい。 ついて行きたいと思わせる男の魅力が足りないのでしょうね、ごめんなさい。 そういえば、大学時代も「いい人」止まりだったなぁ・・・ 付き合ったは良いけど卒業後すぐに分かれたなぁ・・・ 一回しかえっちしてないよ・・・ちなみに童貞×処女
622 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 11:32:56 ] >>619 と思いたいんですね
623 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/09/07(日) 12:13:26 ] PGやSEとか頭脳労働なら、女がいるような職場には行きたくないな。 電話オペとか事務とか誰がやっても同じなら男女雇用機会もわかるけど、 女のセンスとか女のやさしさなど、PGやSEにまったく不要で逆にあると面倒なんじゃないか? 受付や事務で雇うならともかく、女をPGやWEBデザインで雇うようなところは資本もないし 金も技能もないベンチャーはすぐ潰れるのがおちw 今のベンチャーの生き残り方法は、創価学会と手を組むか、堀江豚みたく株屋とつるむぐらいしかないんじゃないの?
626 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:13:28 ] [ param ].flatten(1) flattenの引数ってどのバージョンからだったかのう。
627 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:15:21 ] おまいらの妄想には飽きたぜ。 いい加減どっか外にいけ
628 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:22:16 ] いまでは「Webデザイン」とかかっこ良さそうな臭いがしますが、海外のスクリプト言語 紹介ではJavaScript(とその亜種)の人口は多くPerlなどが続くと紹介されますが、 2008年現在、そのなかにrubyの文字は一度も出てきません。 しょせんrubyは、(にっぽんの)文系 IT ドカタ専用なんです! 犯罪囚人の女も使ってます! コミュニティーはモルモン教です! 負け組みの人たちが都合よく集まったというところでしょうか… ライブラリは冗長が多いけど言語の出来はいいんですけどね……
629 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:27:01 ] 言語側がto_a, to_i とか用意しといて下位互換を無くすようなこと一度でもすると、もうそういう言語・ライブラリは信用されないんじゃないか? OOや継承をなんだと思ってんだ? >ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある これを公式レファレンスに記載すればよろしい
630 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:35:34 ] >>626 1.9のどっか
631 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:35:44 ] 確かにruby使ってる人たちがexcel,word出身のナンチャッテばかりだと、そんなやつらと話があうはずないな。
632 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:51:44 ] excel,wordすらまともにry
633 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:52:10 ] arr=[11,22,33] puts *arr puts &arr マニュアルみてもないんですが、* & これは演算子ですか?
634 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:55:44 ] blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45334 からのスレッド参照
635 名前:デフォルトの名無しさん [2008/09/07(日) 12:56:58 ] 怪しいソフトハウスは五万とあるが胡散臭いからすぐ分かる。たいてい、そういうところはDQNしかいないし長くても5年で潰れる。どう考えてみても、文系乙だな
636 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 12:59:12 ] >>634 演算してるわけじゃないしな 展開記号とでも呼べばいいのかしら
637 名前:デフォルトの名無しさん [2008/09/07(日) 13:09:04 ] * & ですけど、関数引数なら演算子とは呼ばないけど、式文中なので演算子ですよ。 リンク先のMATZ本人はその意味で言ってるんですけど、たぶんこのスレレベルだと理解できないんでしょうね。 やっぱ文系用スクリプトを使うお気軽ルビリストには、その程度の理解度でいいんでしょうか?
638 名前:デフォルトの名無しさん [2008/09/07(日) 13:12:42 ] 理解できない人はC言語をみっちりやってくださいなw
639 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:24:26 ] 背伸び with マニュアル のスレはここですか?
640 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 13:45:03 ] いいえ、基礎を積むスレです。
641 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 14:53:17 ] 配列の中での*はlispでの準クオート中の式を,@付けて評価→展開するものが元ネタっぽい。 だけど関数定義のときに引数定義の中で使われると、 lispの引数リストで使われる&restとか ...みたいな可変長引数みたいになる、ややこしいな。 &付きでProcを呼び出すものはなんだろう、C++のメンバ関数ポインタ? def foo(*x)のときの*x言うのはrest引数構文 puts *arrの*arrは展開構文 puts &arrの&arrはProc変数渡し構文 Matzも*や&単体では意味が無いって言ってるし、こんなのでいいんじゃない? さらにこういう前後の状況によって決まる類の「なんとか構文」なんてものは、 仕様書のある言語ではよくあるものだし。
642 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:00:53 ] Rubyとか超ウケル
643 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/09/07(日) 15:40:31 ] エラーが出ていいんだよ。エラーを読める程度の英語をちゃんと身につけないとねw
645 名前:デフォルトの名無しさん [2008/09/07(日) 15:44:12 ] 「文系 Web 2.0」 じゃ、やっぱ話題について来れないんだろうな… java.net(英語)にも妄想オタクな奴が多いけど、サーバ・サイドだから学歴は高い奴多いしくおかしな文章を書いたりしないな。 だけどrubyは無能な文系ばかりしかいないようだ…メーリングをググってもゴミのごたくばかりだろ… Matzはいつも大変だな…
646 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:45:04 ] >>644 あっ、エラーでいいんですか。 みなさん、とうとうと解説されているので、てっきり意味のある文だと思いました。
647 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:03:30 ] >>646 >>633 を構ってないだけだ
648 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:07:49 ] >>641 文法上サポートしている構文というなら別にそれで文句はないですが、マニュアルに書いといてください。 p [*[11,22,33]] が出来るところを見ると、単項式として値を返すので、言語上の分類としては演算子じゃないかなと思います。
649 名前:デフォルトの名無しさん [2008/09/07(日) 16:14:26 ] >>646-647 君たちはprocを理解してないのに偉そうにしてていいの?もっと一所懸命に勉強しないと!
650 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:29:34 ] >>648 の笑いどころ lisp という単語出てきたとたん、腰が引ける。 2ch に来て「マニュアルに書いといてください。 」 理系の高学歴様は、ギャグのセンスもさすがだなw
651 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:45:51 ] >>646 そんなことよりおマンコはちゃんと洗っといた方がいいですよ。いつ何があるかわからないし・・・
652 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:48:00 ] 変数名がかぶっても、ブロックの中だけ有効にするにはどうすればいいのでしょうか? a = 1 1.times do a = 2 end puts a # 1になって欲しい
653 名前:デフォルトの名無しさん [2008/09/07(日) 16:52:22 ] それよりも >>641 がC++どころかCすらも理解してないのにはビックリした!
654 名前:デフォルトの名無しさん [2008/09/07(日) 16:54:20 ] 質問なので、age失礼します。 携帯でGoogle chartを使おうと、以下のようにchartのアドレスをhtmlに埋めました。 puts <<-EOD <html><body> <img src="chart.apis.google.com/chart?chs=150x150&cht=lc&chd=t:20,40,50,60,40,10,3 "> </body></html> EOD 結果、auやvodaphoneでは見えたのですが、docomoではグラフが見えません。そこで調べてみると、docomoではpngを読まないため、gifにコンバートしろとのこと。 ttp://ke-tai.org/blog/2007/12/10/googlechart/ しかし、Rubyで同様のコンバートを行うにはどうしたら良いか、そしてどうやってhtmlに埋め込んでいいかわかりません。やり方が乗っている場所でも結構ですので、どなたか教えていただけませんか。よろしくお願いいたします。
655 名前:デフォルトの名無しさん [2008/09/07(日) 16:58:35 ] >>652 >>649
656 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:12:31 ] >>652 変数名がかぶってる限りは無理 ちゃんと違う変数名で定義するしかない
657 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:20:44 ] >>656 そうなんですか。 Perlのように、局所化するmyとかはないんですね。。。
658 名前:656 mailto:sage [2008/09/07(日) 17:21:10 ] 追伸 初心者スレの範疇を外れるけど、現在のruby1.9.0系(開発版)では ブロックローカルな変数を定義する(=名前がかぶっても問題ない)文法がある たぶんruby1.9.1にも入るはず
659 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:25:32 ] >>656-658 やっぱり、このレベルなのか…
660 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:36:39 ] >>658 今後のRubyには実装される予定なんですね 了解しました。
661 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:44:55 ] ローカル変数として同じの使ってるぶんには被るの許容するしかないな まあ不便っちゃ不便
662 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:46:54 ] クロージャとかイテレーターって知ってる?
663 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 17:49:18 ] JRubyでYAML使おうとしています。 日本語をdumpすると"\343\203\206\343\202\271\343\203\210"な感じで出力されてしまいます。 RubyのSyckでも日本語をバイナリとして扱ってしまうという、似た感じの問題があり、 パッチやら何やら書かれているようですが、 JRuby(JvYAML?)において日本語文字列のまま出力させる方法はありませんでしょうか?
664 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:02:09 ] >>663 Ya2YAML JRubyで試したことはないが、pure rubyだからたぶん動くんじゃないかな
665 名前:663 mailto:sage [2008/09/07(日) 18:18:46 ] >>664 どうもありがとうございます。 でも、Ya2YAMLはSyck用のバイナリ認識するとこを修正なんだそうです。 JRubyの場合はJvYAML(JvYAMLb)だそうですので、Pure Rubyか否かは関係なさそうです……。 gihyo.jp/dev/serial/01/yaml_library/0006 日本語全然使えない、とか書いてあるところもあったりして。 普通に表示したりする分には問題無いのですが、可読性という意味で言うと価値が激減。 dumpすると頭に"---"がつく辺りもRubyの最新版と挙動が違ったりするのですよね。細かいですが。 Javaのライブラリを使っていなければRubyを使うのですけれども……。
666 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:19:14 ] >>654 ImageMagickプログラムを使うか、それをRubyから使うRubyMagickを使う 自分のサーバに「Google Chartにデータ渡して結果を受け取りGIFに変換して画像を吐くCGI」として置くしかないな
667 名前:654 mailto:sage [2008/09/07(日) 18:36:53 ] ありがとうございます。 なるほど、直接コンバートできるような手立ては無いということですね。 では、画像吐き専門のcgiを作ることにします。 (PHPでやるかもです)
668 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:39:30 ] >>665 楽してないでそれぐらい自分で実装したらどうよ?
669 名前:663 mailto:sage [2008/09/07(日) 18:52:47 ] >>668 すみません。スキルがゴミなもので、解決策が自分だけの力では思い浮かばず、 一週間程悩んだ挙げ句に、こうして初心者スレで質問させていただいている次第です。 実装、というのはYAMLのパーサを実装ということでしょうか? 言語内DSL(もどき)を作って、YAMLを使わない方法に逃げることは一応考えているのですが……。
670 名前:デフォルトの名無しさん [2008/09/07(日) 18:56:36 ] いつも「おっきいチンチン」のこと想像しながらWebしてます!
671 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:11:23 ] YAMLをあきらめてJSONを使う。
672 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:20:17 ] YAMLで作ったデータをどこに持ってくのかにもよるな
673 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 19:25:19 ] >>665 Ya2YAMLのソースコード読んでみたが、Syckに依存してるらしきところはないよ だからSyckかJvYAMLかは関係ないはず
674 名前:663 mailto:sage [2008/09/07(日) 20:16:56 ] >>664 >>673 う、すみません。Ya2YAMLをちょっと勘違いしていました。 ちゃんとソース読んできます。どうもありがとうございます。
675 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:30:49 ] ゴミなんでしょ?もう来るな。
676 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:13:21 ] コテつけろよ
677 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 15:11:49 ] デンターシステマのかためより、やらかめの方がいいですよ。 どうせ堅めを使っても歯ぐきから血が出るだけなんで。
678 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:27:16 ] 歯ぐき弱すぎじゃね・・・? 個人差は有るだろうけど、 いっぺん歯科で相談してみたほうがいい。
679 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 17:42:29 ] 普通は1から10まで足して55になるんですが、逆に10から9,8と足していく文はどうなるんでしょうか。
680 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:03:12 ] やっぱり55になります
681 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:23:32 ] 逆から足して同じ結果にならないなら大発見かもしれん
682 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:25:57 ] BEとLEで結果が違います
683 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:30:58 ] >>681 多項式級数式ではそういうことがよく起こりますが…もしかして無能?
684 名前:デフォルトの名無しさん [2008/09/08(月) 18:46:45 ] どっちが頭いいかをふっかけてくる奴がいっちゃん無能
685 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 18:57:42 ] 無能はすぐage進行にしたがるww
686 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:01:41 ] downto
688 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:05:54 ] ruby1.8.7きめぇえええええ [*(1..10)].reverse.inject(0,&:+) # => 55
689 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:15:31 ] &:+って何?
690 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:19:51 ] みなさん、ありがとうございます。 ちゃんと55になりました。 逆走もあったんですか…
691 名前:デフォルトの名無しさん [2008/09/08(月) 19:21:59 ] >>688 これは可読性以前の数学パズルの世界じゃないの? rubyのキモさは、Cのポインタをほうふつさせるキモキモだなw
692 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:25:02 ] 委譲の英訳ってtransferでいいの? 辞書だとそうなってるけどプログラミングでもそうなん?
693 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:27:54 ] >>692 オブジェクト指向における委譲はdelegation
694 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:31:54 ] サンクス delegateってメソッドポインタの事かと思ってたけど 委譲の意味でも使うのか。
695 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:19:05 ] >>694 C#のやつのことなら、delegateをそういう機能に使うキーワードにしたって だけで、突き詰めた意味は結局委譲。
696 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:28:31 ] めそっどぽいんたってなんじゃらほ
697 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:37:20 ] (1..10).reverse_each.inject(:+)
698 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:00:35 ] >>696 C#を調べろ、としか言いようがない。 要するに関数ポインタのC#版。
699 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:08:03 ] >>696 特定のインスタンスの特定のメソッド(GUI部品とか)を呼び出すためのポインタ 特定のクラスのオブジェクトにメソッド実行を依頼すると考えれば根っこは同じ という説明はどうだろう
700 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:18:00 ] わっかりやすいのう
701 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:18:37 ] 質問です 関数オブジェクトと普通の関数を呼び出すときのコストってどちらも同じですか?
702 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 02:41:11 ] ・Rubyには厳密な関数はない ・Rubyには関数オブジェクトもないっていうかまあこのへんは別にいいや てことで、普通のメソッド定義とProc(lambda)オブジェクトの比較と読み替える Procの呼び出しコストの重さは異常 以上 使うと面倒な概念をとても簡潔に表現できるけど、多用すると明らかに遅くなるので注意 便利なのでほいほい作る傾向にあるが、何度も使う部分に組み込む場合は、できれば丁寧に分析してメソッドにしたほうがいい
703 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:12:15 ] Rubyってメソッドもオブジェクトなの・・・?
704 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 06:44:11 ] >>703 オブジェクト化することもできる
705 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 07:23:00 ] そんなことしたマンコは臭うけどな
706 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:30:13 ] javascriptバカにすんな
707 名前:デフォルトの名無しさん [2008/09/09(火) 08:32:52 ] 臭いのは勘弁して・・・
708 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:08:56 ] javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
709 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:09:38 ] 毎日が夏休み
710 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:17:50 ] >>703 ブロックつきメソッドの {|x| ...} 部分を「持ち歩ける」と考えてもらうと間違いない
711 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:24:09 ] >>708 >javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww spidermonkeyもrhinoもコンソールから起動できるじゃん。 バカ丸出しはおまえwww
712 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 09:38:26 ] javascriptは組み込み向けの設計ってこと忘れてるおまえは、バカ丸出しww
713 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:25:13 ] 話題のv8のshellが普通にいい感じですよ
714 名前:デフォルトの名無しさん [2008/09/09(火) 11:33:16 ] 個人の著作を売り物にするようなところだしmixiと同じだな。 そのうち違う波が来て潰されるんだろうな…
715 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:40:34 ] >>702 そうなんですか。 昨日からruby勉強し始めて、全部関数オブジェクトにしたら一貫性あるかな? とか思っていたんですが、重いなら仕方ないですね。。
716 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:45:08 ] 全部ラムダ式にすればいいと言うわけですね
717 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:07:13 ] 質問です。 配列のmap関数で適用する手続きの代わりに関数オブジェクトを使うことはできませんか?
718 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:18:26 ] 関数オブジェクトって何ですか? Procオブジェクトですか、ブロックですか?
719 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:23:08 ] たとえば、 hoge = lambda{|x| x+1} このhogeという値にバインドした関数オブジェクトをmapで使うことはできませんか?
720 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:26:52 ] (1..10).map &hoge
721 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:32:47 ] >>720 おお、すばらしいです では、次の質問ですが、 関数オブジェクト同士で関数合成ってどうやるんですか?
722 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:37:10 ] procとlambdaで作ったオブジェクトってイマイチ分からないのですが、簡単に言えば何が違うんですか?
723 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:46:54 ] ttp://www.hinet.mydns.jp/tdiary/?date=20080220
724 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 12:49:57 ] >>721 例えばこんなのがある Function Composition 2.0 Ruby Banter #006 media.fngtps.com/rubybanter/2007/006/
725 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:04:29 ] >>721 >>722 そのオブジェクトは Proc オブジェクト 違いはこのへんに ttp://doc.loveruby.net/refm/api/view/method/Kernel/m/lambda
726 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:10:13 ] 「関数オブジェクト」なんてないということをとりあえず前提として話してくれ。 なんで執拗に「関数オブジェクト」と言い続けるんだ?
727 名前:717=721 mailto:sage [2008/09/09(火) 13:10:26 ] >>721 と>>722 は別人です
728 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:12:54 ] func do |x| p x end func { |x| p x } の違いでしたか・・・
729 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:22:21 ] 質問です ある変数の型が何なのか調べる方法はありますか?
730 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/09/09(火) 14:41:59 ]
732 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:44:20 ] >>729 Rubyの変数には型はありません
733 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:47:11 ] >>732 では、たとえば配列の要素をすべて足す関数を作って、 整数と文字が入り交じった配列を渡してしまった場合はどうなるんですか?
734 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:48:14 ] 配列の要素の型に応じて違う処理をさせる方法はありませんか?
735 名前:デフォルトの名無しさん [2008/09/09(火) 14:48:49 ] 精子はやっぱり飲んじゃった方がいいかな?
736 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:52:28 ] >>732 型が無いというのも誤解を生む表現だと思うのですが、 ではどのオブジェクトのインスタンスなのか調べる方法は無いんでしょうか?
737 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:53:56 ] >>730 メモリとかを気にするのに Array.new に引数をつけてる人は久しぶりに見た nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね で、map と map! の差だけで、見たままの動作で、見たままのメモリ消費だと思われる 配列要素が 1万個とかバカみたいに多いときは後者のほうが一瞬だけ若干得 ただ、後者のような書き方はあまりしないかな
738 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:54:09 ] どのクラスのインスタンスなのか、でした。
739 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:56:26 ] >>736 型はない a = 10 したあとに a = 'str' としても動作する以上、変数に型は無いと言って差し支えない で、オブジェクトがどのクラスに属しているかはclassメソッドを使うとわかる
740 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:56:36 ] >>730 前者は配列が2個作られる。後者は1個だけ。課題か何かか? >>733 足せないものを足そうとした時にエラー >>734 kind_of? で仕分ける
741 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:00:56 ] Rubyの変数は本気でただのラベルだからな 他の言語では変数はいわゆる箱のようなメタファで説明できて、箱には形が決まってたりするもんだが >>734 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
742 名前:230 mailto:sage [2008/09/09(火) 15:07:39 ] >>740 課題ではありません。 昨日からruby勉強中なんですよ。 夏休みだけど暇なんで。
743 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:08:01 ] このスレの住人は糞ばかりだし、飲んじゃった方がいいよw
744 名前:230 mailto:sage [2008/09/09(火) 15:10:45 ] >>737 最適化してはくれないんですね。
745 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:11:17 ] >>733 要素が順番に問題なく + メソッドに渡される 不適なオブジェクトが + メソッド内(で使ってる他のメソッド)でチェックされているなら、 TypeError か何か決められた例外が発生してそこで処理が止まる ある意味めんどくさいとも言えるな だから、「要素に数値だけが入っていることを配列登録時にチェックするArrayクラス」のようなものを作ったりする
746 名前:230 mailto:sage [2008/09/09(火) 15:13:53 ] >>745 なるほど。 静的型付け言語に慣れているせいで、ちょっとその辺はぎこちなくなります。
747 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:14:33 ] >>744 「どうせ直後で数値が全要素に代入されるんだから最初に nil 入れるのやめようぜ、 あ、ちょっと待って、map が続いてるからそれもまとめて 1回で処理しよう」 という判断は Ruby はしない というか無茶言うな そういうのはスクリプト作成者が事前に考えてくれ
748 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:16:32 ] nilの実装はintの0x00だけど?
749 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:19:27 ] >>747 遅延評価のHaskellなら朝飯前なんだがな
750 名前:デフォルトの名無しさん [2008/09/09(火) 15:20:40 ] あのー横から失礼しますが、 rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
751 名前:730 mailto:sage [2008/09/09(火) 15:22:01 ] >>737 度々すみません。 たとえば1〜1000が順番に格納されている配列を生成するのに効率的な方法を教えてください
752 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:24:33 ] >>751 (1..1000).to_a
753 名前:730 mailto:sage [2008/09/09(火) 15:25:58 ] >>752 ありがとうございます
754 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:27:54 ] >>748 んなこと言ったら文字列は全部ただのバイト列だぞ(1.8限定)
755 名前:デフォルトの名無しさん [2008/09/09(火) 15:28:26 ] >nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね こういうのは、こいつの妄想じゃね?
756 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:31:24 ] >rubyの有用なサンプル・スクリプトはどこかにないでしょうか? どういうのを求めてるのかよく分からんが 「逆引き Ruby」でぐぐったら幸せなんじゃないかな
757 名前:デフォルトの名無しさん [2008/09/09(火) 15:37:25 ] そういう逆引きじゃなくて、文字を数えるwc伝統的プログラムが集まったサンプル集です。 "hello world\n"の延長みたいなものなんですが、どこにもないんでしょうか?
758 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:40:53 ] >>757 意図はわかった Rubyコミュニティとしては特にないので、個人で書かれた入門ページでも適当に探すといい もとろん間違ってる可能性もあるが、初学者ならおそらく同じように間違うわけでそれはそれで意義があるだろう というか、そういうのがきちんとまとまったページってのは他の言語でも稀なんじゃないかなー あれば楽しそうな気もするけどね
759 名前:デフォルトの名無しさん [2008/09/09(火) 15:44:54 ] あのー・・・・rubyは初めて触るんですけど、他の言語はバリバリ使いwwなんですが・・・・・・・・・
760 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:45:45 ] >>750 サクれ
761 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:47:28 ] 昔は「○○コマンドのクローンを作ってみよう」というのは教材としてわかりやすかったんだけどね 今はCUIコマンド自体の使用頻度が少なくて 「wcってなんですか?」 「いったいどういうときに使うんですか?」 「コマンドまたはファイル名が違いますって表示されました」 という状態で
762 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:49:18 ] >>741 > >>734 > 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う Rationalきぼんぬ。ピッケル本のどこかに書いてあったっけ?(ふとそんな気がしないでもない)
763 名前:デフォルトの名無しさん [2008/09/09(火) 15:57:09 ] 一応K&Cとかさくっと読んじゃったんですけど・・・ないですか。 日本語だと公式サイトの説明も適当だし(文章を書くのが面倒なんでしょうけど)、それなら有用なサンプルがあると理解が深まるんじゃないのかなと…
764 名前:デフォルトの名無しさん [2008/09/09(火) 15:58:45 ] ごっちゃになってたけど、CのK&Rでした。C言語教徒には失礼・・・
765 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 15:58:59 ] K&C・・・ああ、ケンタッキーとチキンのことか。
766 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:01:32 ] モルモン教教徒はすぐ我慢汁が出ちゃうのがなんともねぇw
767 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:07:45 ] K&Rは難しすぎでさくっとなんか読めないよ。 あの超難しいといわれてる「ポインタ」を当然知ってるって前提だろうが。
768 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:16:59 ] ポインタを超難しいと言っている人を久しぶりに見た。 ああ、教鞭を執らなくなって結構経つなぁ・・
769 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:19:13 ] >>748 nilの実装はunsigned longの4だが? 環境によってはunsigned longじゃなくてもっと大きい型のこともあるが。
770 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:19:35 ] K&Rを難しいと言っているぐらいだからHaskellの遅延評価やモナドなんか常軌を逸するだろうな。
771 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:20:26 ] >>766 モルモン教とRubyにどんな関係があるんですか? 前々から気になっていましたが。
772 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:21:57 ] 大多数の大学生のような集団にとってきちんと理解しようとする場合「超難しいと言われてる」でいいと思う
773 名前:デフォルトの名無しさん [2008/09/09(火) 16:22:11 ] >>770 というか、Cのポインタが難しくてLispに逃げたくせに偉そうにするなww
774 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:26:14 ] にわかC使いがLL言語を叩くスレ
775 名前:730 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:35:27 ] >>775 それ、どういう処理なのか理解してないでしょ?笑えるんだけどw
777 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:36:26 ] >>771 Ruby開発者がばりばりのモルモン教
778 名前:デフォルトの名無しさん [2008/09/09(火) 16:37:03 ] まあ、どうあがいたってポインタは難しいからね・・・
779 名前:デフォルトの名無しさん [2008/09/09(火) 16:40:38 ] >>770 先生はモルモン教さんですか?
780 名前:730 mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:47:27 ] そういえば、さっきの妄想君は死んだのか?
782 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:50:15 ] K&Rのサンプル集とか面白かったんで、これと似たようなサンプル(課題)を是非コミュニティーでやってください!お願いします!
783 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 16:50:38 ] ブロック使う方は毎要素でyieldしてるからその差じゃね?
784 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:06:24 ] >>782 Rubyのサンプルに限らず他言語でのサンプルをRubyで書いてみたらいいんじゃね
785 名前:730 mailto:sage [2008/09/09(火) 17:09:44 ] 大まかにrubyのことがわかってきたので自己テストのためにリバーシプログラム書いてみますね。
786 名前:デフォルトの名無しさん [2008/09/09(火) 17:14:10 ] str="" str << x str .concat x ま、好きな方を使え。どうせ行き詰まるんだろうけどw
787 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:29:07 ] >>750 書籍 「Rubyレシピブック」 お勧め。
788 名前:デフォルトの名無しさん [2008/09/09(火) 17:55:56 ] APIは熟読するぐらいに読まないと。
789 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 19:14:23 ] コード書いてるそばから一発でriやrefe2xでドキュメントを閲覧したり ソースコード上の定義やCによる実装に飛べるようなエディタの支援が無いとキツイな
790 名前:730 mailto:sage [2008/09/09(火) 20:43:52 ] 質問です ある変数が取り得る値の範囲をあらかじめ定めることは可能でしょうか? たとえば、代入時に0〜10までの値以外の値が代入されそうになったとき、 例外を発生させるようなメカニズムなど。
791 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 20:49:40 ] まずは初心者向けサイトで勉強したらどうよ?
792 名前:デフォルトの名無しさん [2008/09/09(火) 20:56:53 ] >>790 ある変数て… Ruby の変数には型がないって、このスレの今日の部分にも書いてあるよね とりあえず、入門書を読んでみなよ
793 名前:730 mailto:sage [2008/09/09(火) 21:04:08 ] >>792 それは理解しましたが、 私が聞きたいのは型に関することではなく(実質は型のようなものでしょうが)、 ヒューマンエラーで誤って100などの数字を代入しないよう、 安全な代入操作を行いたいだけなんです。 ヒューマンエラーで誤って100などの数字を代入しないために。
794 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:06:56 ] >>793 if文って知ってる?
795 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:08:48 ] レヴェルの低いのがからんどるな
796 名前:デフォルトの名無しさん [2008/09/09(火) 21:10:03 ] たぶんチンコがはえてないんだろw
797 名前:730 mailto:sage [2008/09/09(火) 21:10:37 ] >>794 代入文を書く直前にif文を書かずに済む方法はありますか?
798 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:11:01 ] >>790 オブジェクトという言葉を一度も使ってないことが気にかかる Rubyはすべてのものがオブジェクトだ 変数と呼ばれるものは、該当するクラスをnew(とか)して作ったオブジェクト(インスタンス)に名前を付けたものに過ぎない 変数という入れ物は存在しない オブジェクトというものについて勉強することを勧めるよ これを大まかにでも理解しないままRubyの勉強を進めるとか遠回り過ぎて気が遠くなる で、回答は 「オブジェクトに登録するときのメソッドをフックする、または専用の登録用メソッドを作成する」 というのが一般的だと思われる
799 名前:デフォルトの名無しさん [2008/09/09(火) 21:11:35 ] はよ初心者サイト行け
800 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:12:43 ] >>794 if文知ってるとチンコはえてきますか?
802 名前:730 mailto:sage [2008/09/09(火) 21:12:55 ] >>798 ありがとうございます。
803 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:13:17 ] >>790 ローカル変数やインスタンス変数に入る値(=代入されるオブジェクトの内容)を、自動的に制限する方法は 基本的には存在しない。テストで頑張るのが常道 ただし、アクセサメソッドを上書きすることで obj.parameter = 100 といった代入の形に限り、何らかの制限を行うことはできる
804 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:14:50 ] >>798 の毒され方が気になる
805 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 21:19:41 ] >>804 確かに、かなりの重症患者だろうな… ラムダ使いも、度がすぎると全く未知の方法を編み出すんだろう…
806 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 00:41:31 ] >>790 言語レベルで規制はできない。 やりたかったら、不正な値ならraiseするんかな
807 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 00:54:41 ] >>806 そのへんは一応>>798 ではある、んだが Rubyにおける「変数のイレモノ」の実体はそれの指すオブジェクトだからな 他の言語における「変数作成時に何かしたい」は「オブジェクト作成・操作時に何かする」だろう というか、他の言語での変数ってデータのカタマリを指すラベルのようなものじゃないのか?
808 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:39:07 ] >>790 の言語経験がわかんないよね。 アセンブリとかCOBOLとかperlとかかね。 案外Pythonとかhaskellとかバリバリ使ってるのに 釣りに来ただけだったりw
809 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:08:07 ] 「変数には型がない。オブジェクトには型がある。」 といくら説明しても理解できない人にぶちあたると徒労感でいっぱいになる。
810 名前:デフォルトの名無しさん [2008/09/10(水) 07:09:54 ] 関数型言語使ってる人とは、これほどパラダイムが違うなんて思ってもみなかったは…
811 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 10:03:17 ] >>809 そりゃその2つの間には関連性は希薄だからな 並べられて説明されるほど混乱するのはあたりまえだと思う
812 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:00:52 ] オブジェクトについてのことを変数の文脈の「型」を絡めて説明するのは誤解招いてキケンだと思う…
813 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:46:47 ] メタ議論は他所でやれ
814 名前:730 mailto:sage [2008/09/10(水) 12:57:05 ] オブジェクト指向でプログラミングするとバグ取りが大変ですね。 久しぶりにこの感覚味わいました。
815 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 14:52:26 ] Cだといくら難しくても構造体とポインタは避けて通れないからね…
816 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:03:12 ] 文法レベルで躓く男の人って・・・
817 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:40:58 ] Perlだと、呼び出しの後に関数の定義があっても、きちんと認識してくれるのですが、 --------------------------------------------------- func(); sub func { print "in func"; } --------------------------------------------------- 以下、Rubyだとエラーが出ます。 --------------------------------------------------- func #=>undefined local variable or method `func' for main:Object (NameError) def func print "in func" end --------------------------------------------------- エラーを出さないようにするには、関数を呼び出しの前に書くしかないのでしょうか?
818 名前: pl791.nas924.p-hokkaido.nttpc.ne.jp mailto:sage [2008/09/10(水) 16:30:23 ] >>817 Rubyには関数はない クラスやオブジェクトに関数があるということもない メソッドのことを関数だと解説している本やサイトがあるなら晒せ で、答はYES クラスやメソッドの定義式の評価は実行時に行われる 実行時ということは1行目から順に実行されてるときということで、 つまり定義前のメソッドが書かれてた場合はエラーだ まあぶっちゃけた話をするとすぐ慣れる 関数定義みたいに後ろに倉庫的にどっさりあったほうがすっきりするよねと思うことは今もあるが
819 名前: pl791.nas924.p-hokkaido.nttpc.ne.jp mailto:sage [2008/09/10(水) 16:31:19 ] お、何だ何だ
820 名前:デフォルトの名無しさん [2008/09/10(水) 16:50:03 ] 長い説明よりスクリプトの方にしてちょ
821 名前: p3070-ipad304kobeminato.hyogo.ocn.ne.jp mailto:sage [2008/09/10(水) 17:02:55 ] メソッドと関数の違いがわかりませんえん
822 名前:デフォルトの名無しさん [2008/09/10(水) 17:03:25 ] >>818 そもそもオブジェクト指向というパラダイム自体不細工。 所詮は商業主義の世迷い事。 いかにも新しいことを考えましたよ、って言いたいがために新しい言葉を作っただけのこと。 本来はメソッドは関数と呼ぶべきだし、クラスも構造体と呼ぶべき。
823 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:33:18 ] >>822 には触れないほうがいいよ
824 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:41:30 ] >>818 サンクス 了解しました
825 名前:デフォルトの名無しさん [2008/09/10(水) 17:52:18 ] >>823 型理論よりもちゃんとした理論体系が確立されているんですか? 間違いを通そうとして話をそらさないでくださいよ。
826 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:18:59 ] オブジェクト指向の次って何があるの?
827 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:19:39 ] >>825 そういう事は、それ系のスレかお前さんのブログでやってくれ。 Ruby のスレでオブジェクト指向のパラダイムを受け入れてるのは当たり前だろ。
828 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:25:16 ] 変数とオブジェクトの違いも曖昧な奴に、オブジェクト指向を語れるのか? >>827 と同じ意見だけど…
829 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:25:51 ] しかしよく釣れるスレだなw
830 名前:デフォルトの名無しさん [2008/09/10(水) 18:26:42 ] >>828 誰と混同してるんだ?
831 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:32:31 ] >>826 エージェント指向とかアスペクト指向とか
832 名前:デフォルトの名無しさん [2008/09/10(水) 18:32:57 ] なんだ厨房しかいないのかw
833 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:36:30 ] >>826 遅延評価、monad、arrow、pi-calculus
834 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:39:01 ] >>831 エイジェント指向ってのは一つのプログラムを作るための概念ではないよ。 もっとマクロな協調動作を目指したもの。 クラスタとかグリッドとかそっち方面の技術だよ。
835 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 18:40:20 ] 技術ではなくて概念 か。
836 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:16:46 ] 「能」という漢字を扱おうとすると必ず unterminated string meets end of file というエラーが出ます。どうしてでしょうか?
837 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:17:43 ] ほかの漢字のときは大丈夫なんです。 「芸能」がダメで、「芸」はOKなんです。
838 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:27:56 ] さあいますぐ 能 能\ それぞれをShift_JISで保存してバイナリエディタで開いてみるんだ
839 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:19:16 ] >>837 偉大なるKENT様のご説明 文字化けについて www.kent-web.com/pubc/jcode/index.html
840 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:47:26 ] KENT様・・・
841 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:42:40 ] >>801 うん。ひと晩で二、三本は生えてくるよ
842 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:43:37 ] 何で朝鮮人は嫌われてるんですか?
843 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 22:56:51 ] >>842 汚くて臭いからさ
844 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:42:15 ] >>831 アスペクト指向はオブジェクト指向の二番煎じ。 ITバブル時代に新しい言葉を作ってビジネス機会を作ろうと企んだが失敗に終わりそうな概念です。 ほかにもajaxとかWEB2.0とか、いろんな言葉が作られて消えていきましたが、 全部商業主義的な目的から作られた物です。 この業界をかき乱すのもそろそろやめてほしい。
845 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 23:44:57 ] 新しくも無いのにわざわざ特別な名前を与えていかにも新しくてすごそうに見えるように宣伝して儲ける手法。 全部誰かが裏で糸を引いているんじゃないかと思うほど手口が似ています。
846 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 00:10:05 ] >>844 あんたが「本物のプログラマ」だという事はよく分かったから、 お菓子好きの集まるこのスレにはこないでくれ。
847 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 07:48:45 ] >>844 ハスケルは学者ばかりですし、そっちではたくさん高級なメタ議論してますよ。
848 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 07:58:38 ] だからさ,スレ違いだしもう触れるな,っての
849 名前: mx.narihara-lab.jp mailto:sage [2008/09/11(木) 08:38:43 ] >>844 > アスペクト指向はオブジェクト指向の二番煎じ。 そうなの? 「MOP の二番煎じ」だとばかり思ってたんだが…
850 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 20:56:56 ] Web2.0が商業用語ってどんだけ 商業にすらなってないわ
851 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:06:21 ] >>850 今日のおまんこの締まり具合はどうですか?
852 名前:730 mailto:sage [2008/09/11(木) 21:08:49 ] 質問です シンボルを宣言するとき:hogeのように記述しますが、 「:」というのはメソッドなのでしょうか? 「:」のようなメソッドを宣言する方法を教えてください。
853 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:27:10 ] >>852 メソッドじゃない。 つーかいい加減マニュアル読めよ
854 名前:デフォルトの名無しさん [2008/09/11(木) 21:30:26 ] RubyスクリプトがOut of memoryで終了してしまうんですが どこでメモリ消費してるのか調べるプロファイリングツールみたいのはありますか?
855 名前:730 mailto:sage [2008/09/11(木) 21:33:41 ] >>853 どこに書いてありますか?
856 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:40:14 ] Stringを作るための ' や Array を作るための [ と ] がメソッドじゃないのと同じようなもんだな
857 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:41:57 ] >>854 ruby -profile hoge.rb ただし、これは死ぬほど重いので、rubygem の ruby-prof とかを使う
858 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:48:56 ] >>855 www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.a5.b7.a5.f3.a5.dc.a5.eb
859 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:49:09 ] >>855 だから聞く前に読めよ
860 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:51:27 ] Out of memory は RubyMagick でよく見たなあ
861 名前:730 mailto:sage [2008/09/11(木) 22:02:15 ] >>858 ありがとうございます
862 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:41:24 ] 煽るような回答しかしてない人はわからないんですね、わかります。
863 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:40:45 ] 何を聞きたいのかイマイチ不明。