Rubyについて Part47
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/01/16(月) 13:15:31.00質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
前スレ
Ruby 初心者スレッド Part 46
http://hibari.2ch.net/test/read.cgi/tech/1317790320/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0082デフォルトの名無しさん
2012/04/29(日) 00:42:40.710083デフォルトの名無しさん
2012/04/29(日) 00:51:25.40他にあるならあげて見てくれないか?
もちろん仕事で使える言語で
0084デフォルトの名無しさん
2012/04/29(日) 01:01:10.35Python 3が後方互換性を捨てても求めたもの − @IT
http://www.atmarkit.co.jp/fcoding/articles/python3/01/python301a.html
0085デフォルトの名無しさん
2012/04/29(日) 01:03:59.090086デフォルトの名無しさん
2012/04/29(日) 01:05:09.62事実は事実。
0087デフォルトの名無しさん
2012/04/29(日) 01:07:11.000088デフォルトの名無しさん
2012/04/29(日) 01:08:12.900089デフォルトの名無しさん
2012/04/29(日) 01:10:09.06他は安心
0090デフォルトの名無しさん
2012/04/29(日) 01:12:55.25必死すぎw
0091デフォルトの名無しさん
2012/04/29(日) 01:15:25.680092デフォルトの名無しさん
2012/04/29(日) 09:49:02.200093デフォルトの名無しさん
2012/04/29(日) 09:52:12.62JRubyとかですらデフォルトが1.9モードになってしまった。
0094デフォルトの名無しさん
2012/04/29(日) 10:15:53.01今のコンパイラじゃコンパイル通らなくね?
>>78
それだと思う
本来ならば根幹の主軸を誰も動かさず
根幹を丁寧に作り、その上に少しずつでも資産を積み重ねたほうが数億倍いいんだけど
まだ誰も「正確に」根幹を作れていない
だから結局、流れの中で生きていくしかない
技術が廃れる前に覚えるという学習速度こそが最も大事、
さらに先にいけば、新しい有望な言語や技術が出てきたときに入門書や書籍が書いたら即売れるような時期に
調べてすぐにかいてしまったり、上手く採用してしまうレベルの奴が金儲けをしていく
0095デフォルトの名無しさん
2012/04/29(日) 11:39:01.630096デフォルトの名無しさん
2012/04/29(日) 11:53:30.29> 今のコンパイラじゃコンパイル通らなくね?
Rubyはつい最近の話だから問題。
0097デフォルトの名無しさん
2012/04/29(日) 14:19:11.83K&R C→C89→C99の過程でも非互換性は発生してるので……
究極的には、「完璧な」仕様と実装の処理系を出せばいいんだろうけど
それこそ無茶言うなって感じではあるし
0098デフォルトの名無しさん
2012/04/29(日) 14:54:48.93ANSI以前のCなんて方言だらけだっただろうし、規格が無いならそれも当然だと割りきれる
けど、一度規格作っちゃったら互換性を蔑ろにはできないような…
0099デフォルトの名無しさん
2012/04/29(日) 15:42:55.840100デフォルトの名無しさん
2012/04/29(日) 15:45:02.93ちゃんと規格票を読んでないんだが、
あれはRubyの最小部分のセットを定義してあるだけで
しかも実装依存の部分が大量にあった気がする
matzもRubyの将来的な発展を妨げない形での規格化と言ってたと思う
0101uy
2012/04/29(日) 16:01:22.48文句たれてるやつは、変わらないものが好きなんじゃなく「変われない」だけ
0102デフォルトの名無しさん
2012/04/29(日) 16:04:36.27後で自分の首しまるよね
0103デフォルトの名無しさん
2012/04/29(日) 16:16:24.640104uy
2012/04/29(日) 22:07:12.20俺が人に興味を持つのは珍しい事である
あのレベルならあと5年後には、俺から見ても「優秀」と言えるレベルになってくれるかもしれない
今のレベルはまだまだだ
ブログにコードはあげてるが、所詮生きてきた時間が短いのでネタがない
人に読ませる為の文章をかいたり、ブログに大勢にとって有益な情報をかいて発信するネタがな
まだあれは、人に読ませる為のコードではなく、自分はこんなことも出来るよレベルのソースコード
だがあせる事はないそこまで出来たらハッカーや
0105デフォルトの名無しさん
2012/04/29(日) 22:08:38.51これがあったから
いまだに自分が損な業界で飯を食ってる
0106デフォルトの名無しさん
2012/04/29(日) 22:13:55.36インターネットみたいなの作りたいんだけど…とかいうレベル
0107デフォルトの名無しさん
2012/04/29(日) 22:14:32.520108デフォルトの名無しさん
2012/04/29(日) 22:22:54.010109デフォルトの名無しさん
2012/04/29(日) 22:39:26.480110デフォルトの名無しさん
2012/04/29(日) 23:04:35.940111デフォルトの名無しさん
2012/04/29(日) 23:09:17.460112デフォルトの名無しさん
2012/04/29(日) 23:10:19.620113デフォルトの名無しさん
2012/04/29(日) 23:43:01.660114デフォルトの名無しさん
2012/04/29(日) 23:51:03.030115デフォルトの名無しさん
2012/04/30(月) 00:12:30.460116デフォルトの名無しさん
2012/04/30(月) 07:01:34.90Rubyは、日本人がつくったから問題は発生しないとおもったらだめです(バージョンによっては、がっかりすることもある。安心できない)
Ruby 1.9.3をつかいます(安心できるはずなんだけど…)
0117デフォルトの名無しさん
2012/04/30(月) 07:11:12.27理屈的には絶対に起こらない
が、たぶん、あなたが期待しているような感じで自動で判別されて自動で解釈されて自動で変換されて自動で防止されるわけではない
0118デフォルトの名無しさん
2012/04/30(月) 07:15:23.26問題が発生したら、もっと具体的にかいてください
0119デフォルトの名無しさん
2012/04/30(月) 07:26:09.84> あなたが期待しているような感じで自動で判別されて自動で解釈されて自動で変換されて自動で防止されるわけではない
まあ求められてるのはそのへんなんだろうな
この処理は(または、この文字列は)Shift_JIS(という名のCP932またはWindows31-J)です、という指定はできるが、
その指定が「正しい」かどうかまで追試はしてくれないし、出力や外部コマンドに渡したときにきちんと動作するかまでも保証できない
0120uy
2012/04/30(月) 13:52:56.77require "open-uri"
open("http://toro.2ch.net/test/read.cgi/tech/1328648447/895").read \
.toutf8 \
=~ /(見えない人と会話しないでください.*?)\</
puts $1
こういう風にネットからページ等ダウンロードして正規表現かけるようなコードでよく突っかかって毎回思うんですが
=~ するときに
Stringをutf8(または今のソースコードの標準文字コード)に暗黙的に変換すると何か問題あったりするんですか?
.toutf8 かくのが無駄なような気がしてなりません?
utf16とかutf64とかutf512であれば、toutf8に変換したらよくないのも分かりますけど、
sjisやeuc程度の雑魚カス文字コードなんて特殊参謀のutf8様に勝てる日は来ないんじゃないですかね
0121デフォルトの名無しさん
2012/04/30(月) 14:39:12.82ありきたりだけど付箋でペタペタ貼付けられるようなコルクボードみたいなのを作ってもらおう
0122デフォルトの名無しさん
2012/04/30(月) 14:42:51.510123デフォルトの名無しさん
2012/04/30(月) 14:51:08.84irb> "test".gsub(/t/,"表A".encode('Shift_JIS').force_encoding('BINARY')).encode('UTF-8','Shift_JIS')
=> "表Aes表A"
irb> "test".gsub(/t/,"表0".encode('Shift_JIS').force_encoding('BINARY')).encode('UTF-8','Shift_JIS')
=> "付es付"
irb> "test".gsub(/t/,"表1".encode('Shift_JIS').force_encoding('BINARY')).encode('UTF-8','Shift_JIS')
Encoding::InvalidByteSequenceError: incomplete "\x95" on Shift_JIS
Shift_JIS系列で「表0」と書いたものをバイナリとして扱ってる文字列(Ruby1.9ではレアだが、たとえばRuby1.8でとか)を
subやgsubの第2引数に指定するとなにがなんだかわからない感じに化ける
理由を答えることができたらRuby初級脱出
0124uy
2012/05/01(火) 17:42:06.33ocraでも無理だったんだけど?
0125デフォルトの名無しさん
2012/05/01(火) 18:38:30.610126デフォルトの名無しさん
2012/05/01(火) 23:20:47.290127デフォルトの名無しさん
2012/05/02(水) 02:54:52.110128デフォルトの名無しさん
2012/05/02(水) 07:00:15.780129デフォルトの名無しさん
2012/05/02(水) 07:23:53.860130デフォルトの名無しさん
2012/05/02(水) 12:47:31.49リアル妹なぞそんなもん
現実を受け入れろ
0131デフォルトの名無しさん
2012/05/02(水) 13:05:04.070132デフォルトの名無しさん
2012/05/02(水) 13:39:04.62メモリをダァッと使って高速化するようなことはしてないだろうな。
0133デフォルトの名無しさん
2012/05/02(水) 14:52:47.09RPGツクールは昔からRubyだけどなんか変なバージョンだ
0134デフォルトの名無しさん
2012/05/02(水) 17:43:15.520135デフォルトの名無しさん
2012/05/02(水) 17:49:46.07本当に? ってまずお前に聞きたいなw
0136デフォルトの名無しさん
2012/05/02(水) 17:55:21.14「完全無編集」のRuby処理系を提供しなければならない理由はなにもない
Ruby1.8.5ベースだろうがRuby1.9.3ベースだろうがJRubyベースだろうがmrubyベースだろうが、
「本家とは違う処理をするruby」を添付するのは、ライセンスさえ守れば自由だ
過去、手を加えたruby処理系を提供した実績があるのなら、
たとえmrubyベースであっても「巷のmruby」とはちょっと違ったものになる可能性は高い
0137デフォルトの名無しさん
2012/05/02(水) 18:02:05.64これほど一応真面目に言語として評価されるようになった点は、評価していいのでは。
まだperlが生まれて25年しか経ってないよ。
昔はCと比較することなど憚られるような時代だったし
0138デフォルトの名無しさん
2012/05/02(水) 18:06:10.760139uy
2012/05/02(水) 19:26:56.87なんでスクリプト言語でプログラミングしない奴がいるのか未だに分からない
よくそこら辺の議論でのサンプルコードで
別に言語指定したわけじゃないのに
C言語やJAVAでこれ見よがしに綺麗に(笑)かかれたソースコード上げてる奴って
もしかして全部同じ奴なの?
スクリプト言語を知っていれば、議論での言語指定がない場合において
わざわざ冗長な言語でサンプルコードを書く意味がないことくらい分かるはずなのに、不思議
0140デフォルトの名無しさん
2012/05/02(水) 19:58:59.250141デフォルトの名無しさん
2012/05/02(水) 20:19:12.81VXだかその次のだかで1.9ベースになったんだったっけね。
0142デフォルトの名無しさん
2012/05/02(水) 20:35:11.780143デフォルトの名無しさん
2012/05/02(水) 20:36:05.590144デフォルトの名無しさん
2012/05/02(水) 20:42:29.120145デフォルトの名無しさん
2012/05/02(水) 22:19:12.08わかってやってるなら別に何の問題もないと思うし
ただセキュリティ的に対外用のシステムにはどうかとは思うけど
0146デフォルトの名無しさん
2012/05/02(水) 23:33:29.96ツクールがGPLってことはないだろうし
0147デフォルトの名無しさん
2012/05/03(木) 11:26:45.78をビルドしてみた
1.9.3p125の不具合直ってるかなぁと調べてたら
シングルクォート文字列のマルチバイト文字直前の\の挙動が修正されて
’\あ’ が 「あ」 ではなくて正しく「\あ」になる
が、しかし
"\あ" が 「\あ」 になる エンバグorz
#coding:cp932
puts '\!\y\あ' # => \!\y\あ
puts "\!\y\あ" # => !y\あ
ついでにビルドしてみた ruby 2.0.0dev (2012-04-30 trunk 35500) [i386-mingw32] だと
#coding:cp932
puts '\!\y\あ' # => \!\y\あ
puts "\!\y\あ" # => !yあ
これが、正しい挙動のはず
0148デフォルトの名無しさん
2012/05/03(木) 14:42:51.87http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_9_3/parse.y?view=log
見比べたら34776はマージされてて34796はマージされてないな
それで困る奴は要望出してみれば
0149デフォルトの名無しさん
2012/05/03(木) 18:29:42.64影響の少なそうな不具合について
修正されたもの
・ブロック無しでIO.foreachを呼ぶとオプションハッシュのモード指定が無視される
IO.foreach('foo',mode:'rb'){|line| } だとモード指定が有効で
IO.foreach('foo',mode:'rb') だとモード指定が無視されてたのが直った
Windows環境だけと思うけど
・Dirオブジェクトのinspectが読めない(常にUTF-8 バイト列が出てくる)
Dir.openに渡したパスがSJISならSJISでinspectされるようになった
UTF-8で渡したものはUTF-8でinspectされるので
依然としてコマンドプロンプトでは読めないが、これはしかたないかな
修正されてないもの
・IO.read foreach readlines writeでオプションハッシュ binmode:trueを渡すとエラー
2.0.0snapshotでは直ってた
0150デフォルトの名無しさん
2012/05/03(木) 22:07:23.17puts "日本語".encode('UTF-8')
$stderr.puts "日本語".encode('UTF-8')
てしてもcp932でちゃんと読めるように表示される
リダイレクトしたりパイプしたりで
コンソール以外に出力するとUTF-8になる
オブジェクトのinspect表示は
p Struct.new(:foo).new("日本語".encode('UTF-8')) # => #<struct foo="\u65E5\u672C\u8A9E">
cp932で表示できるようにエスケープされてる
エラーメッセージ
"日本語".encode('UTF-8').hogehoge # => undefined method `hogehoge' for "\u65E5\u672C\u8A9E":String (NoMethodError)
cp932で表示できるようにエスケープされたUTF-8文字列が出てくる
raise "日本語".encode('UTF-8') # => 譌・譛ャ隱・(RuntimeError)
UTF-8が直に表示されて化ける
まちまちだな
0151デフォルトの名無しさん
2012/05/04(金) 14:44:44.55Rubyなんて終わったものだと思ってた。
0152デフォルトの名無しさん
2012/05/04(金) 15:19:49.880153uy
2012/05/04(金) 15:40:58.06変わり続けてるせいか、枯れた技術だとはとてもいえない
0154デフォルトの名無しさん
2012/05/04(金) 16:19:17.890155デフォルトの名無しさん
2012/05/04(金) 18:37:18.48もう切り捨てられてるのかw
1.9.3にしたら全部すんなり動いたはw
0156デフォルトの名無しさん
2012/05/04(金) 20:20:13.570157デフォルトの名無しさん
2012/05/04(金) 20:35:34.780158デフォルトの名無しさん
2012/05/04(金) 20:44:54.05エンプラで実績のあるJVM, Javaのライブラリを使えるからとか?
0159デフォルトの名無しさん
2012/05/04(金) 20:50:04.74なんでもできる言語ではなく
特定の分野でずば抜けている言語です。
0160デフォルトの名無しさん
2012/05/04(金) 20:53:24.020161デフォルトの名無しさん
2012/05/04(金) 21:41:11.930162デフォルトの名無しさん
2012/05/04(金) 21:43:52.380163デフォルトの名無しさん
2012/05/04(金) 22:03:23.020164デフォルトの名無しさん
2012/05/04(金) 22:12:29.29まぁなんのメリットもないからしょうがないかw
0165デフォルトの名無しさん
2012/05/04(金) 22:40:07.630166デフォルトの名無しさん
2012/05/04(金) 23:49:54.90Matzは「ライバルはLua」と言ってた気がする
組み込みやすいRubyという事で、
ある部分では競合するだろう
0167デフォルトの名無しさん
2012/05/05(土) 00:10:48.84言語としてはRubyのほうが圧勝なんだから、性能比較に持ち込まれないように気をつけないと。
0168デフォルトの名無しさん
2012/05/05(土) 00:18:27.490169デフォルトの名無しさん
2012/05/05(土) 00:19:37.03人の趣味にどうこう口出すつもりはないけど...
無益だなぁとため息がでる
0170デフォルトの名無しさん
2012/05/05(土) 00:31:01.97他人の愚痴に口を出す気はないけれど...
そんなことも理解できないなんて無能だなぁってため息が出る
0171デフォルトの名無しさん
2012/05/05(土) 00:34:23.840172デフォルトの名無しさん
2012/05/05(土) 00:36:40.97安定性と信頼性比較
0173デフォルトの名無しさん
2012/05/05(土) 03:33:20.10たとえそれでmrubyの方がluaより低かったとしても程度によってはrubyの書きやすさを取るって判断するかもしれないし。
許容出来ないぐらい遅かったら採用見送るのは当然だと思うし。
0174デフォルトの名無しさん
2012/05/05(土) 03:45:28.91お前のほうが無益だから心配するなw
0175uy
2012/05/05(土) 04:12:03.250176デフォルトの名無しさん
2012/05/05(土) 04:31:04.140177デフォルトの名無しさん
2012/05/05(土) 08:38:08.840178デフォルトの名無しさん
2012/05/05(土) 08:41:32.29コーエー三國志のAIを.rb弄ってカスタマイズできるようにしてくれ
0179デフォルトの名無しさん
2012/05/05(土) 10:39:57.00吉里吉里とかの紙芝居ゲームスクリプトがrubyで書けたら特定方面で
受けるかも知れん。
0180デフォルトの名無しさん
2012/05/05(土) 11:15:33.740181デフォルトの名無しさん
2012/05/05(土) 11:25:21.24インタプリタのレベルで評価実行すると、どうしてもひと回り遅くなるから
速度を求めるならJITで機械語に落とすのは有力なアプローチだよ
0182デフォルトの名無しさん
2012/05/05(土) 12:33:41.09h = Hash.new([])
h[0] << 0
h[1] << 1
p h #=> {}
p h.default #=> [0, 1]
h = Hash.new{|h,k| h[k]=[]}
h[0] << 0
h[1] << 1
p h #=> {0=>[0], 1=>[1]}
p h.default #=> nil
■ このスレッドは過去ログ倉庫に格納されています