1 名前:デフォルトの名無しさん [2009/06/28(日) 16:29:28 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 前スレに変なのが沸いて流れてしまいましたが、まったりと行きましょう。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 35 pc12.2ch.net/test/read.cgi/tech/1238194350/ 過去スレ・関連スレは >>2-
47 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:02:41 ] RubyにもCommon Lisp成分が入ってると思うが 触ってみると、なるほどご先祖様だと感じられる Matzが参考にしてると言うだけはある
48 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:05:26 ] >>39 それはないだろw
49 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:12:04 ] Ruby も Python も LISP も信者はおかしなのが多い。
50 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:13:46 ] 隔離スレあるんだからいい加減そっち行ったら?
51 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:26:02 ] >>20 実行結果出力例が納得いかないんだが、test-arithmeticの結果、mathの結果、は別途表示されないの? それはともかく、 deftest "test_plus" do check ["1+2", 3], ["1+2+3", 6] end deftest "test_times" do check ["2*2", 4] end deftest "test_arithmetic" do combine_results "test_plus", "test_times" end deftest "math" do test_arithmetic end に対して pass ... (math test_arithmetic test_plus): 1+2 == 3 pass ... (math test_arithmetic test_plus): 1+2+3 == 6 pass ... (math test_arithmetic test_times): 2*2 == 4 と表示させるテストライブラリくらいはあっという間に書けた。
52 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 21:33:00 ] evalかな そうだとすると、違わないんだけどなんか違うようなやっぱり違わないような なんだこの無形の障壁は
53 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:04:34 ] evalです。 作ってみて思ったんだが、>>52 の気持ちはよくわかる、というか、対象式を表示させるために文字列で渡してevalするという発想自体が捻じ曲がってる気はする。
54 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:26:43 ] 構文木を直接書き下すlispはそこんとこ突き抜けてるからな。
55 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:30:23 ] 1年ほど前からスピードランニングやってます。 貧乏なので生活費辛くなってPart9で中断してますが。。 率直な感想を言えば、内容は悪くないと思う。聞きやすいしバックのクラシック音楽も意外に効果的。 ただ、会話がいかにも教材のために作られたという感じの内容なのでつまらなくてすぐに飽きます。 例えば、日本人と外国人が映画に行って、お互いの文化を説明しあったりとか。 価格は高すぎると思う。ちゃんと机で教科書開いて学習する意思がある人ならNHKラジオの英語教材買った方が遥かにお得だし効果的。 1年ぐらいの間暇を見つけてはCD聴いてたわけですが、現時点で英語の映画とか観ても相変わらずほとんど聞き取れない。 効果が出るかは謎。出るにしても時間はかかるんだろうなぁ
56 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 22:31:14 ] ↑誤爆した。すまん
57 名前:12 [2009/06/29(月) 22:31:20 ] >>51 まさにそんなかんじ。すげー でも勉強不足なもんでそのdeftestの実装がどうなってるか よくわからん。 checkは文字列を引数としてあとでevalするのか。なるほど
58 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 01:19:50 ] Proc#to_sあたりでコード片の文字列に戻せたならeval避けられそうなんだけどね 例えばJavaScriptだとユーザー定義の関数は (インデント等の差違はあるけど)Function#toStringでコード片に戻せる rubyの実装だとこういうの難しいんだろうか >>47 Array#cdrあったような気がしてつい探したことがあるw ・・・昔あったんだっけ?
59 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 06:52:46 ] いいかげんウザいよ
60 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 10:25:45 ] お前はなんの話題なら納得するんだ
61 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 12:11:29 ] まぁ、Array#cdrなんて無くても ary[1..-1]で済むからなぁw
62 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 12:33:45 ] >>57 実装はこんな感じ。5分ほどで書いたから汚くてごめん。 class Test @@tests = [] def check(*tests) name = caller[0...-2].reverse.map{|str| str.sub(/\A.*`(.*)'\z/){$1}}.find_all{|m| @@tests.include?(m)}.join(' ') #` tests.flatten.each_slice(2) do |expression, expected| result = eval(expression) == expected puts "#{result ? 'pass' : 'failed'} ... (#{name}): #{expression} == #{expected}" end end def combine_results(*cases) result = true cases.each do |c| result = false unless send c end result end def self.run self.new.__send__ @@tests.last end end def deftest(name, &block) Test.class_eval " define_method(name, block) @@tests.push(name) " end END { Test.run }
63 名前:デフォルトの名無しさん [2009/06/30(火) 13:07:24 ] > 5分ほどで書いたから汚くてごめん。 謝るくらいなら5時間できれいなものを書け
64 名前:デフォルトの名無しさん [2009/06/30(火) 13:28:35 ] 2chのレスのために5時間かけるくらいなら、5分で書いてゴメンするほうを選ぶわな。 みんながみんな、2chに張り付いているわけじゃない。63みたいに。
65 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 13:29:48 ] なんで1円にもならんことに5時間もかけにゃならんのだ。
66 名前:デフォルトの名無しさん [2009/06/30(火) 13:36:37 ] >>64-65 だったら一々言い訳つけて女々しいレスすんな
67 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 13:42:14 ] こいつ前スレの>>971 だろ 酷い劣等感だ
68 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 14:12:26 ] Ruby ユーザの脳味噌の中身は PHP みたいですね
69 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:19:01 ] >>67 そんなわけないだろ。 ちなみに前スレでやり合ってたのもおれじゃない。 監視する価値を感じなくなったからもう書き込むことはないよ。じゃあ
70 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:24:37 ] ここまで我慢してたけど監視する価値でフイタ
71 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:32:29 ] watchの機械翻訳かもな 外国のお客さんは大事にするべきかもよ
72 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:41:49 ] るびまきてるね、編集乙 だが松江Ruby会議と仙台Ruby会議は福岡開催じゃNEEEE
73 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 01:52:16 ] >>72 ワロタwww 広島Ruby会議も栃木で開催されてるよ!
74 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 02:19:50 ] Ruby会議って面白いですか? 「はじめてのRuby」を一通り読んだ程度の人間が行っても場違いでしょうか?
75 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 05:30:43 ] 教祖に有って、誤利益の有るツボとか買いたければ参加してみるのも一興。
76 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 06:54:36 ] >>72-73 普段どういうコードを書いてるか目に浮かぶようだ
77 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:11:31 ] Ruby ユーザの質は PHP みたいですね
78 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:12:35 ] >>77 仲の悪い奴らを一緒に語ると、変なのが湧いてくるからやめてくれ。
79 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 14:31:17 ] そもそもperlの再発明だしね。
80 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 15:24:28 ] rubyはperlの…とは良く言われるが、一体rubyのどこがperlな訳? perlオリジナルの機能でrubyが模倣したモノって何よ?
81 名前:デフォルトの名無しさん [2009/07/01(水) 15:25:40 ] >>80 模倣じゃなくて劣化再発明 だからRubyはPerlではないし、Perlの代わりにはならない
82 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 15:40:54 ] やっぱり無いんだ、そもそもperlこそがパクリ言語だもんな そーゆー意味では劣化再発明と言うのは当たってるか
83 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 16:01:39 ] RubyがBlack PerlをパクってZen of Rubyを隠しコマンドに入れたのは超有名
84 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 16:51:33 ] コマンドラインオプションとかif/unless修飾子とかredoとかだってグーグル先生が あとperlが出典かわかんないけど、メソッドだと同じ名前のものが腐るほどあるよな
85 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 18:37:48 ] 他の言語からも取り込みまくってるから、perlと特に似てるって感じではない いろいろな言語のいろいろな特徴・アイデアを取り込んだのがRuby 強いて言えば、主な用途(スクリプティング、文字列処理、Web)がperlと似てるか >>83 詳しく
86 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:57:04 ] perlっぽい使い方を想定してる所は有るね。 松本教祖謹製perlってところか。
87 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:38:09 ] perlパクってるくせに perlからの脱却とか言ってperlの悪口ばかり言ってるのも面白いよね
88 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:47:24 ] >>87 こんなところにまでわざわざご苦労様です
89 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:49:07 ] rubyはawkのパクり。
90 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:54:52 ] とりあえず国産言語だから、という理由で覚えてみてる。 scala見たいな別の言語が出てきたら使いたいなー
91 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 00:46:08 ] でも国産言語だと世界でメジャーじゃないのがねえ。 主要OSが英語圏で作られてるから、利用環境が充実しない。 plやpyと比べると(ry
92 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 00:59:57 ] むしろ国産言語じゃ世界的に普及しまっくてる方じゃね?
93 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:03:09 ] >>87 だからperlからパクったものをあげてみろって 今んとこ出てるのはif,unless(while,until)修飾子とredoな # 関数名とメソッド名が似通ってるのはUNIX文化から来てるからperlは関係ない どうせperlもrubyも他の言語もロクに使ったこと無いんだろ?
94 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:10:03 ] >>92 まがりなりにも世界的に利用者のある国産言語と言われても思いつかない KL/1ぐらい?Prologの世界では有名なのかも分からんが、 とてもメジャーとは言いがたいと思う
95 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:18:19 ] お堅い洋書を読んでいてもRubyの名前は当然のように出てくるぞ >>93 pack/unpack, shift/unshiftなんかはPerl起源っぽくない?
96 名前:94 mailto:sage [2009/07/02(木) 01:20:54 ] あああRubyを除いての話
97 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:52:35 ] >>94 Lisp 界隈だと KCL (Kyoto Common Lisp) とか ISLISP くらいかねえ まあ、 KCL は言語じゃなくて処理系だし、 ISLISP は ISO 標準のわりにあまり見掛けないけど
98 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 05:02:39 ] >>95 その手の関数はC等で良く使われる手法を、perlでは言語標準にしただけだと思う perlの関数はunix-cやawkの関数がそのまま使われてるし、他の言語もだいたい同じ むしろ同じ機能なのにわざわざ別の名前にされても憶えるのが面倒だし混乱の元だから パクリと言われても同じ名前をつけてくれる方が使う側としてはありがたい
99 名前:デフォルトの名無しさん [2009/07/02(木) 06:00:57 ] Rubyは国産でも日本語対応がいいわけじゃないから何のメリットもないよ > Ruby(ルビー) † > 日本産ではあるが日本語の取り扱いは他の言語と同レベルで、特にRubyとしてのアドバンテージはない。
100 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 06:32:18 ] 標準で日本語の文字コード変換機能を備えてる訳でもないしな。
101 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 09:12:18 ] >>99-100 ( ゚д゚)ポカーン
102 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 09:23:08 ] >>100 は皮肉だろ。たぶん
103 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 10:45:01 ] >>93 コマンドラインオプションは既に出てるでしょ。 あと、特殊変数の類はほぼ全部perl由来だね。 それに絡んで、Kernelの一部のメソッド類が$_を特別扱いするのもperl由来。
104 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:05:42 ] > 日本産ではあるが日本語の取り扱いは他の言語と同レベルで、特にRubyとしてのアドバンテージはない。 どこからの引用だそれ? 1.8 までの文字列は 8 ビットスルーで、どんな文字コードでもトラブらないように 作られてるし、1.9 の i18n は、文字コードフェチの夢実装屋の悪夢の CSI が 実現されてるしで、日本語対応は他のスクリプト言語と比べて特徴的な所 なんだが。 検索したら、プログラミングスレまとめ in VIP、かよ。 訂正してやる気も失せる VIP クオリティだな。
105 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:12:31 ] パクっただのなんだのなんてネタは前世紀で終わらせとけよw
106 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:59:23 ] なぜこんなに多くの人が日本語の扱いに困っているんだろう。 それを考えてみることも必要。
107 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:01:13 ] > 多くの人が日本語の扱いに困っている 困ってるのか?
108 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:12:38 ] >>106 バカだからだろw
109 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:23:37 ] Ruby ユーザの日本語の認識は PHP の mb_* 並ですね
110 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:41:08 ] 辞書順ソートが標準でできないとダメとか言いたいのか?
111 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 17:51:07 ] >>87 スリップストリームに使う車体は 追い抜くためにありますので。
112 名前:デフォルトの名無しさん [2009/07/02(木) 23:21:01 ] >>104 > 日本語対応は他のスクリプト言語と比べて特徴的な所 日本語対応…? 対応…?
113 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:06:20 ] JISで統一すれば良かったのに、EUCとかSJISを使い続けるのを許してた。 結局、UTFなんて新しいコードがもう一つ増えたしなあ。 欧米だと、utfとascii/iso8859がちゃんとマップしている。
114 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:10:23 ] 今さら去年のRubyConfでのmatzの基調講演を見たが、 ことさらloveだとか強調されるとキモい
115 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:49:57 ] Ruby愛を語った講演というと、むしろRuby会議2007のDave Thomasを連想する 生で見たことはないが、ニコニコ動画に転がってたと思う ユーモアたっぷりにRubyを語ってるのは面白かったw
116 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:00:56 ] C(++)系のプログラマに pack/unpack を直感的に理解してもらう うまい説明の仕方ってあるだろうか?
117 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:17:19 ] >116 ソースコードを読ませる。
118 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 02:35:41 ] >>116 Cで構造体なんかをfread/writeするコードと Rubyでpack/unpackするコードを並べて見せればいいじゃまいか
119 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 04:04:30 ] char* <=> struct* のキャストにbase64等の便利機能を加えた物、とか
120 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 08:49:39 ] それCで書けるなら、Cのほうがいいって結論に成る。 おまいらだと、rubyで書ける事をわざわざCで書かないだろ。
121 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 08:51:15 ] むしろC/C++プログラマの方が理解しやすいだろ ネイティブのintとかエンディアンがどうこうとか日常だし
122 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 09:51:45 ] この論点のずれ具合が巨大掲示板の醍醐味。
123 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 10:42:33 ] pack/unpackなんて実質的にCプログラマのための機能だろう。 直感的にもなにも、C構造体そのものやん。
124 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:23:48 ] すいません。どなたか、初心者スレたててください(´・ω・`) おながいします
125 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:32:03 ] >>123 あれはRubyらしく操作するということをハナから放棄したシロモノだよね 新しく再構成したRuby専用インタフェースを覚えなおすのとかめんどくさいから流用というのもあるんだろうけど
126 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:41:00 ] 初心者スレって意味あるのか?
127 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:44:48 ] そりゃ初心者は一定数いるだろうし、 初心者が卒業する一方で新しい初心者も出てくるだろうし 大抵の言語スレで初心者スレがあるのを見ても、あったほうがいいんでない
128 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:54:14 ] スレ立てトライしてみる
129 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 12:58:46 ] Ruby 初心者スレッド Part 29 pc12.2ch.net/test/read.cgi/tech/1246593305/
130 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 13:01:50 ] 乙
131 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:28:28 ] >>113 EUC-JPもShift_JISもJISベースですがなにか
132 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:08:43 ] だから何なのかサッパリわからんレスの最後に、なにか、とか書かれてもな。
133 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:13:23 ] Shift_JIS と名乗って CP932 の文字使ってる Web ページは爆発しろ あと ~ と 〜 でどうにかなるページももれなく爆発しろ
134 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:33:05 ] どか〜ん
135 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:46:00 ] ラテン文字入ってるのに us-ascii と名乗ってるページがあるのと同じようなもんかな、と思うことにしてる
136 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:59:45 ] 何も言わないと、iso8859が仕様ですがなにか?
137 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 18:10:17 ] ラテン文字てーと ABCDEFHIKLMNOPQRSTVWXZ こうですか。Gもか。
138 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 18:16:28 ] >>136 US-ASCIIって名乗ってるって言ってるじゃん
139 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 09:34:04 ] しつもんー Ruby は外部 iconv のバージョンとか構成とか関知してないよね WINDOWS-31J が使えない Iconv モジュールとか存在しうるよね でも SHIFT_JIS は期待していいよね
140 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 09:45:11 ] ttp://www.gnu.org/software/libiconv/ > Japanese > EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1 この6つは存在するものとして扱っていいと思う これ以外はシステムに存在しなかったときのエラー処理が要るな エラー処理ったって何すればいいのかさっぱりわからんが(w 自前で変換表持って置換でもすればいいのか?
141 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 20:46:44 ] ISO-2022-JP系で使ってるようなエンコーディングを 外部とのデータ交換用ではなく内部で使おうとするのは かなり技術的なセンスが欠落してるよな まだ昔のX-Multiがやってたような 独自の固定長のコード体系の方がマシというか
142 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 20:48:51 ] メール前提だと文字化けしない事が重要なので、一切変換せず扱えるのも大きい。 バイト文字列として扱えば良いけどね。
143 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 00:03:58 ] これからの時代は文字コードはUnicode系しか認めん。 みんながテキストファイルをUTF-8にしておけば文字コード関係のトラブルは格段に減るのに。
144 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 00:19:07 ] メール程度の日本語を使いたいだけならUTF-8一択で問題が極小になるという 現代の真実が主流になるのは一体いつのことだろう。 Outlookか?Thunderbirdか?鶴亀か?Beckyか?正直何が悪いんだ?
145 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 08:33:31 ] フォントとグリフと文字集合とエンコーディングを分けて話さないと CSIの怖い人がきそうだな
146 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 09:09:34 ] 文字集合とエンコーディングとcharsetを区別して (定義を暗誦するとかではなく)日常的に使える人は日本で一握りだろうな
147 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 10:42:18 ] 言語と用字(スクリプト)の区別とかもだねー。