17/12/09 03:23:13.41 /arVeZ+Z.net
個人的には二回やればいいと思うんだよね。
多分一回でやったほうが速いと思ってるんだろうけど
ループの中で複雑なことをやるとCPUのキャッシュから溢れてしまうので
シンプルな処理のループを二回やるほうが速いのではないかって思ってる
あとマルチコアだと別々に処理できるかもしれないしね
まあ実際に検証はしてないんだけどさ
201:デフォルトの名無しさん
17/12/09 03:27:37.70 2nAyZadj.net
ID:/arVeZ+Zって何をやったの?
202:デフォルトの名無しさん
17/12/09 03:30:23.07 /arVeZ+Z.net
JavaScriptスレでlodash使ったコードを書いたよ
それを持って>>77がこのスレに来たようだ
203:デフォルトの名無しさん
17/12/09 03:32:23.28 JRYZIrF0.net
荒らしじゃ無いよアピールしてるけど、
ここ数ヶ月、Rubyスレに粘着して自演で荒らし行為を繰り返してた荒らし本人
それで昨日、皆がブチ切れて、
ruby-listかruby-devのどちらかで発言して本人確認しろって事になったんだけど
ID:/arVeZ+Zが逃げ回り、その道中もアホな自演で墓穴堀りまくって、今に至る
204:デフォルトの名無しさん
17/12/09 03:41:01.56 2nAyZadj.net
もしかして最近の単発ネガキャンもID:/arVeZ+Zなの?
205:デフォルトの名無しさん
17/12/09 04:04:00.12 JRYZIrF0.net
うん
昨日のレスとか見ると分るけど、
連投する癖とかまんまで今日のIDは
ID:zmyZSbxv
ID:/arVeZ+Z
ID:kKoELm7m
ID:hbOJEhsM
ID:CCmdYb7I
今は、昨日の自演で使った別IDと会話ごっこしてる
それで、ID:/arVeZ+Z がRubyコミュニティで発言できなかったから皆で、
今後の対策として荒らし行為やネガキャンを行う人がいた場合は、
ruby-listとruby-devに誘導する事になった
206:77
17/12/09 04:10:47.76 zmyZSbxv.net
>>194
strHash = {"a"=>2, "b"=>1, "c"=>2}
maxCount = strHash.values.max #=> 2
p strHash.select {|k, v| v == maxCount } #=> {"a"=>2, "c"=>2}
全要素をなめて、最大値を求めて、
もう1回、全要素をなめて、
その最大値を使っている、オブジェクトを求めるのに、抵抗を感じるw
普通、2回も全要素をなめるか?w
207:デフォルトの名無しさん
17/12/09 04:34:45.05 su9Dppjp.net
これが昨日のID変えれなかった自演失敗例
>100デフォルトの名無しさん2017/12/08(金) 07:38:48.25ID:AScviHBw
>少なくともID:AScviHBwはRubyと関係ないことは言ってないし別に間違ったことも言ってないでしょ
>静的型の方がリファクタリングしやすい、くらいMatzでも発言したことあるぞ
>さすがにこんなのまで荒らし扱いするのはこのスレくらいだよ
で、それを自演でカバーしようとしたのがこれ
>79デフォルトの名無しさん2017/12/08(金) 02:47:13.84ID:cpGshdOM
>yFCS8xkjは例のアイツを記憶している
>それぐらい例のアイツを意識しまくっている
で、うまくトリップで引継ぎさせたIDがこれ
>ID:/arVeZ+Z
で、後に加勢させるため昨日から荒らしをスルーして投稿させてたIDがこれ
>ID:zmyZSbxv
話を遮る所からもご覧のとおりアボーンしてるから見えてないんだよ
ID:zmyZSbxv=ID:/arVeZ+Z
208:デフォルトの名無しさん
17/12/09 04:52:18.43 ptiAgEOA.net
もういいよ
当分は何も出来ないだろうし又ネガキャンや荒らしやって来たらテンプレでとっちめまくるから
209:デフォルトの名無しさん
17/12/09 04:53:26.04 /arVeZ+Z.net
>>200
二回舐めても良いんじゃない?って思ってる
メモリはキャッシュに入るだろうし、
ループとかCPUの投機的実行が当たりやすいだろうから
そんなに時間変わらないんじゃないかって思ってる
検証してみてくれ
210:デフォルトの名無しさん
17/12/09 05:02:36.18 ptiAgEOA.net
そうやって地道にしっかりレスを稼げ
211:デフォルトの名無しさん
17/12/09 05:11:54.17 JRYZIrF0.net
将来、型システムが導入される事になったらやっぱり型もオブジェクトになんのかな
型の呼び出しや定義なんかもRubyっぽくメタプログラミングやワンライナーで書けたり
212:デフォルトの名無しさん
17/12/09 05:53:50.28 PWfKTZji.net
事前エラーだー最適化だー高速化だーっと言って型を検討してるわけだが、
今更テンプレートのような型マクロとかテキストマクロの時代に戻るわけではないだろうし
Ruby的に下のようなぶっとんだ書き方も無きにしも非ず
def foo(x : (@flag ? String : Array) , y : (@flag ? String : Array) )
p x,y
end
まぁ、これだと事前チェックの時に実行時情報が必要になるから何か仕掛けが必要なんだが
213:デフォルトの名無しさん
17/12/09 07:21:40.66 JRYZIrF0.net
>>206
その書き方を出来るようにするには、
実行時情報よりも型チェックのために事前に走らせる部分をRubyのコードから抜き出す必要があるけど?
214:デフォルトの名無しさん
17/12/09 08:54:23.61 puk20IRY.net
>>205
型もオブジェクトになんのかなというか、すでにRubyには
クラスと呼ばれる(部分型付された)型が存在し、知られているように
クラスはClassクラスのインスタンス、いわゆるオブジェクトだね
で、型システムの導入で変わるのは、オブジェクトがメソッドを
受け付けた時に行われる検査が実行時のみであった(動的型付け)のが
どこまで実行前にできる(静的型付け)ようになるのか?という議論になる
そして静的片付けには型(=クラス)をコードで宣言する明示的片付けと
宣言しない暗黙的片付けの二種類があって、>>206は前者に該当する
ここでMatzがたびたび主張している「型を書きたくない」という方針は
後者の暗黙的片付けであり、これは「Rubyの構文を大きく変更しない」
という別のMatzの方針とも一貫している
いいかえると型宣言構文の新規追加が必須な明示的片付けは採用したくないという意味
まとめると、理想的にはRubyユーザーから見ると既存の構文はなんら変更もなく
(=互換性を維持したまま)型システム導入の利点を享受できるようになる
ただしこれはあくまで理想的な姿であって、技術的に高度な型システムの導入において
どこまで妥協できる/する/すべきと言った様々な取捨選択が議論されているところ
215:デフォルトの名無しさん
17/12/09 08:58:19.29 Xp00eVEZ.net
>>207
そうじゃない
この場合、xの型は String | Array として扱うべき
フロー解析によって、その後コード上で flagで分岐した時点でthenブロックではString, elseブロックではArrayと確定する
TypeScriptはそういう方式
216:デフォルトの名無しさん
17/12/09 14:15:40.37 HCMuc4Gp.net
>>208
なるほど、良くまとまってます�
217:ネ 要するに、もはや静的型チェックが有ったほうが良かったのは 社会主義が資本主義に負けたのと同じぐらい分かりやすいレベルで 誰の目にも実験的/経験的に明らかというか 動的型のプロパガンダ的な嘘がバレて広く知れ渡ったので 今までは北朝鮮みたいにあんな調子で押し通していたが いよいよ立ち行かないので、あれだけ言っといて今更恥ずかしいことではあるが 恥を忍んでRuby3.0で静的型チェックを入れたい という背景があるってことだね で、ここまではRuby触ってる人なら当たり前の常識なわけだが もし、明示的な型宣言を文法に入れるなら、変数宣言をするということになり 変数宣言をするということは、型だけじゃなく変数のスコープも宣言出来るということで CやJavaなどで見られる、いわゆる普通のレキシカルスコープを採用できるし 「@」のような気職の悪いものは要らなかったという結論になるわけだな なんで変数宣言を入れるということは、静的型に白旗を上げるということだけではなく 「変数宣言を変数への最初の代入で代用するから変数宣言と代入の文法的区別がつかない」 という文法的問題、気色の悪いスコープについても意味が無かったということで おおよそ変数周りのすべてて雪崩的に設計ミスだったということになる ここまで壮大に間違ったなら、一から作り直した方が良いんだろうが それならユーザー視点で考えると、間違ってない他の真っ当な言語を使えばよい話になるので Rubyは大きく間違っているが、もはや間違ったまま行くしかない とMatzは考えているってのが>>208なわけか (流石のMatzもこの程度のことに気が付いていないとは思えない、言わないだけで) ただ宗教的な感覚も絡んできて、誤った考え方でもある一定の信者はつくもので Rubyはあえてそこを狙っているわけで(Matzはインタビューなどで逆張り逆張りと良く言っていた) 初めから分かっててわざと間違えた可能性もあるし、あるいは両方か まぁペテン師だ
218:デフォルトの名無しさん
17/12/09 14:50:03.37 HCMuc4Gp.net
まぁ単純に考えても、今更、静的型を導入するぐらいなら
初めから静的型にしておけばよかったのは言うまでもない
仮に静的型が最近出てきた考え方でRubyを開発した当時は知りもしなかった
というなら仕方がないが、静的型は昔からあったし、RubyはCで書かれたわけで
知らなかったというのはあり得ないし、むしろ自分は静的型の恩恵を受けて
Rubyを開発したわけであって
そこは明確な意思をもって、あえて動的型にしたわけだから、今更静的型にするのはどうよ
(なら、初めからしておけよ、と思うだろ?)
ただもしRubyが静的型だったのならC/C++やJavaと競合して生き残れる理屈が無かったし
それもあって動的型にした部分もあるんだろうし
あまり言いたくはないが、そういうのを世間一般では悪魔に魂を売ったとかと表現して
それでカルト宗教というかドーピングというか、まぁ社民党にも支持者はいるわけで
そこを狙ったんなら、今更クリーンにっつっても、ブレるっつーか、民進党の前原代表みたいになるし
メジャー行けばもっと大きな勢力がひしめいてるわけだから
今まで通りマイナーメジャーでやってくのが良いんじゃね?と思わんでもない
いやぁこれは、メジャーマイナーとマイナーメジャーのどちらのほうが良いのかという
Pythonはメジャーマイナーを狙いに行ってるようなので
一つ席が空いたという部分も含めてRubyはマイナーメジャーを狙う感じなんだろう
Matzが好きな逆張り的な意味で
219:デフォルトの名無しさん
17/12/09 15:20:28.57 IaSBe7Pk.net
これが本当の荒らし
220:デフォルトの名無しさん
17/12/09 16:18:
221:52.76 ID:jtqcr+t2.net
222:デフォルトの名無しさん
17/12/09 16:21:32.60 jtqcr+t2.net
嘘で押し通すというのは
トランプ大統領がエルサレムの首都認定が
世界中からバッシングを浴びたと報道しているやつだ。これが嘘
本来ならエルサレムが首都になって嬉しいという声があるはずなのに
そういう報道が一切ない。
トランプの大統領選前と同じで嘘を押しとうそうとしているわ。
223:デフォルトの名無しさん
17/12/09 16:48:54.96 HCMuc4Gp.net
「静的型があったほうが良かったのは分かりやすいレベルで明らか」
それを俺の頭の中だけの話で嘘っぱちだというのは勝手だが
ではなんで動的型の権化みたいなRubyで
次期メジャーバージョンアップで静的型などという話が持ち上がってるんだ?
となるわなぁ
少なくとも次期Rubyを策定している連中はそう考えてるわけで
とりあえずRubyにおいては真実だし、このスレ的にはそれ以上の論証は要らないんだが
一般的に言っても最近出てきた目ぼしい言語は当たり前に静的型だし
つまり嘘で押し通そうとしているのはお前だが
ではなぜ嘘をついたのか?目的はなんだ?
身を守るための嘘なら仕方ないんだが、こんな掲示板でそんな必要ないし
利害関係のない掲示板でなんで嘘をつきまわるんだ?
224:デフォルトの名無しさん
17/12/09 17:32:32.99 IaSBe7Pk.net
これが本当の荒らし
225:デフォルトの名無しさん
17/12/09 17:50:31.43 yzhjOMYr.net
ID:/arVeZ+Z
おい糞野郎
臭い自演してないで失せろボケ
226:デフォルトの名無しさん
17/12/09 17:58:34.44 /arVeZ+Z.net
まーた俺と勘違いしてる
227:デフォルトの名無しさん
17/12/09 17:59:43.05 yzhjOMYr.net
な、召喚の儀で呼べただろ?
228:デフォルトの名無しさん
17/12/09 18:31:50.87 ojM2xQr7.net
>>218
みんなが言ってる通りruby-listで発言してみてはどう?
本当に違うならそれで証明が出来ると思う
229:デフォルトの名無しさん
17/12/09 19:02:37.47 JLcgGjoy.net
>>218はこのまま逃げ回ってIDリセットを狙ってる
昨日のレス読めば分かるけど、
結局は口先で騙して逃げることしかしてない
トリップも消したし
230:デフォルトの名無しさん
17/12/09 19:04:59.03 /arVeZ+Z.net
>>219
頭大丈夫か?
自分から見に行かないと、お前の書き込みは見れないんやで?
231:デフォルトの名無しさん
17/12/09 19:05:48.98 /arVeZ+Z.net
>>221
じゃあお前はID変えるなよ?
お前とわかるものがなくなったら、
逃げたとみなすで?
232:デフォルトの名無しさん
17/12/09 19:10:08.10 JRYZIrF0.net
昨日も今日もID:/arVeZ+Zが叩かれてる間はネガキャンも静的云々も出てこなかったね
なんでかなー(棒)
233:デフォルトの名無しさん
17/12/09 19:16:15.66 JLcgGjoy.net
>>223
俺もruby-listかruby-devで発言をずっと待ってるんだけど
逃げ回らないでくれる?
いつになったら発言するの?
234:デフォルトの名無しさん
17/12/09 19:39:46.57 CViON1aA.net
やっぱ静的型だけどdynamicがあるC#がナンバーワン!
235:デフォルトの名無しさん
17/12/09 19:41:28.53 Avl0kHLY.net
スレ進みすぎだなおい
何があった?
236:デフォルトの名無しさん
17/12/09 20:01:45.91 PLdtTEIG.net
>>227
1.rubyをネガキャン(個人的には荒らしとまではいかない程度)する人が元から住みついていた
2.自分に対して否定的な意見は全て自演と決めつける狂人が発生(JRYZIrF0 [や単発ID)
弁護士云々言ったりコピペ連投したりする人
3.せっかく質問があっても2のせいで流れてもうわかんね ← 今ここ
237:デフォルトの名無しさん
17/12/09 20:03:09.41 xil3RrnV.net
>>225
いっつも絡んでるこいつが一番うざい
238:デフォルトの名無しさん
17/12/09 20:03:52.96 ZQM0F59y.net
ID:/arVeZ+Zがここ何ヶ月かこのスレに粘着して荒らしてた本人だと判明
で、分りやすい自演を繰り返して誤魔化すからruby-listかruby-devで発言して本人確認しろって事になった
それらからID:/arVeZ+Zが絶賛逃げ回ってる所
必死チェッカーで調べてみ?
これぞ粘着の本領だって
239:分るレス数だから 今後の対策としてはID:/arVeZ+Zを念頭に荒らし行為やネガキャンを行う人がいた場合はruby-listとruby-devに誘導する事になった
240:デフォルトの名無しさん
17/12/09 20:10:24.80 xil3RrnV.net
荒らしと言われてる方はまだrubyの話してるけど、それに反応してる方がただのキチガイになって迷惑すぎる
あーまた馬鹿なこと言ってるわって相手にしないでおくか、rubyの話としてマジレスするかのどっちかにしなさい
241:デフォルトの名無しさん
17/12/09 20:15:40.04 PLdtTEIG.net
ruby?-d?ev云々いって/?a?r?V?e?Z?+?Zに絡んでいる人(全部同一人物。もしくは多くて2人程度と思われる)が荒らしなのでスルーしましょう
242:デフォルトの名無しさん
17/12/09 20:20:14.45 ZQM0F59y.net
>>223が急に発言しなくなっただろ?
これで自演できてるつもりなんだよ本人は
243:デフォルトの名無しさん
17/12/09 20:29:52.03 zmyZSbxv.net
荒らしに、レスを付けるな。
荒らしと会話するな。
荒らしが、ずっと居座るだけ
この板では、何かを答えても、
「知らんくせに答えるな」ってレスが付いて、
「そうだよな」って、すぐにそのレスに賛同する、レスが付く
荒らしに、すぐに賛同する奴が、いる訳がないのに。
それが、どんな深夜にも起こる
とにかく単発ID の奴は、荒らしと見て、スルーする事!
244:デフォルトの名無しさん
17/12/09 20:32:50.99 ECkYCn8N.net
>>232
お前のギャグさいこーwwwww
245:デフォルトの名無しさん
17/12/09 20:43:26.43 /arVeZ+Z.net
>>233
なんだ? 飯ぐらい食わせろよwww
発言しなかったからってなんなんだ?
246:デフォルトの名無しさん
17/12/09 20:44:08.67 /arVeZ+Z.net
>>224
> なんでかなー(棒)
土曜(休日)の昼間だからだよ?
意味ぐらいわかるよね
247:デフォルトの名無しさん
17/12/09 20:46:52.18 /arVeZ+Z.net
なんだ?俺が来た途端黙ったなw
248:デフォルトの名無しさん
17/12/09 20:48:58.33 /arVeZ+Z.net
IDを変えて逃げたとか思ってたんだろうなw
だからID変えてないことがわかると
恥ずかしくなって発言できなくなってしまう
それにお前は毎回IDを変えてるよね(誰のことかわかるよね?w
249:デフォルトの名無しさん
17/12/09 20:49:36.99 ECkYCn8N.net
223が自演できるのは書き込み時間からわかったけど
荒らしてたのは本当にこいつなの?
250:デフォルトの名無しさん
17/12/09 20:51:29.23 /arVeZ+Z.net
IDは変えたら戻すことはできないから自演してない証拠になるからな
その反面、毎回IDを変えることはできるから
違うIDで同じようなことを言ってると自演とばれるわけだ
251:デフォルトの名無しさん
17/12/09 20:58:58.11 zmyZSbxv.net
JavaScript のスレでも、やってる。
荒らしは、全部のスレで、いちゃもんを付けてくる。
そのくせ、プログラミングの話をした事はない
他人のレスを、やたら探したりする。
他人のレスを探しても、1円にもならないのに
荒らしは、仕事した事がないはず
252:デフォルトの名無しさん
17/12/09 21:03:22.23 /arVeZ+Z.net
ライブラリの話をすんなってうるさいアイツのことだなw
同一人物でなければ、荒らしの脳内構造は一緒ってことなんだろう
スレと関係ない話しかしない
俺はもちろんスレと関係ある話をした
253:デフォルトの名無しさん
17/12/09 21:17:18.85 ECkYCn8N.net
ごめん、223が荒らしだったわ
254:デフォルトの名無しさん
17/12/09 21:24:17.46 /arVeZ+Z.net
何度も言わなくてもいいよ
お前ぐらいしかそんなこと言ってない
何度も言っても、こうしてバラされたら効果ゼロ
235 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 20:32:50.99 ID:ECkYCn8N [1/3]
>>232
お前のギャグさいこーwwwww
240 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 20:49:36.99 ID:ECkYCn8N [2/3]
223が自演できるのは書き込み時間からわかったけど
荒らしてたのは本当にこいつなの?
244 名前:デフォルトの名無しさん[] 投稿日:2017/12/09(土) 21:17:18.85 ID:ECkYCn8N [3/3]
ごめん、223が荒らしだったわ
255:デフォルトの名無しさん
17/12/09 21:49:29.83 KAnpleQL.net
せいぜい20レス/日のこのスレで彼は今も我らのために見えない敵と戦ってらっしゃるのだ
以下テンプレにいくつか追加
>粘着する荒らしがスレを何ヶ月も荒らしたため、
>ネガキャン、逸脱した連投、荒らし行為を行う人がいた場合は対策としてruby-listやruby-devへ誘導するようにお願いします
>自演でIDを変えて荒らしを繰り返すため、加勢するIDも含めて誘導するようお願いします
>
>荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
>そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください
256:デフォルトの名無しさん
17/12/09 22:18:52.50 HCMuc4Gp.net
俺は極たま~~に静的型どうのこうのの長文を書き込むことがあるぐらいで
言うほど連続投稿しないし、毎日書き込んだりしないし、チラ裏の日記みたいな感じで
特にここ最近半月ほどはスレが荒れていたこともあって何も書き込まないようにしてたんだが
過剰に反応して何にでも荒らし認定する一部のアレな人が全然関係ない人を攻撃していて
攻撃された人は気の毒だなぁとか思いながら、変なことになってるなぁと傍観していたんだが
その流れがあまりにもアレすぎたのか、いよいよ本物が居付いてしまったようだけど
自業自得とはいえ残念なことだな
他の真っ当な住人からしたら随分迷惑なことだろうし、俺も嫌かなぁ
結果的には俺の書き込みに過剰に反応する必要は無かったし
元々荒らしと言われるほど、ひどい内容や投稿スタイルではなかったはずなんだが
(ここが何処かを考えれば、通常、それぐらいは普通にあり得るかなぁという範囲)
実際には過剰反応している奴が意味のない書き込みで一番このスレを荒らしていたし
そのことは他の住人からもちょくちょく指摘が入ってたと思うんだがねぇ
というか、そのあいだ俺は書き込んでなかったんだが・・・しかしまぁ結果的にこの事態だわ
俺も勉強になって、自分たちに都合の悪い事実を、荒らし認定などで黙殺しようとしても
事実を黙殺する歪のようなもので、もっと酷いことになるんだな
嘘が雪だるま式に広がって~とよく似ている
こういうときは沈黙は金だね
257:デフォルトの名無しさん
17/12/09 22:23:27.43 fpEjaZID.net
スレの終末感がまさにRubyの現状を象徴しているかのようだな
258:デフォルトの名無しさん
17/12/09 22:25:40.22 jtqcr+t2.net
悪貨が良貨を駆逐するってやつだ
良心的なやつがここにいても
アホが次から次に湧いてくるから
心がおられる。
そしてgoとかPythonとかkotolinとかにいってしまう。
259:デフォルトの名無しさん
17/12/09 22:26:53.94 /arVeZ+Z.net
> そしてgoとかPythonとかkotolinとかにいってしまう。
それこそまさに悪貨が良貨を駆逐するってやつだな
今他の何かを駆逐して生き残ってるやつは全部悪貨なんだよ!
260:デフォルトの名無しさん
17/12/09 22:28:02.68 /arVeZ+Z.net
悪貨が良貨を
シリア軍、北部でISIS駆逐の作戦開始 空港を奪還
URLリンク(www.cnn.co.jp)
261:デフォルトの名無しさん
17/12/09 23:10:08.11 PLdtTEIG.net
NGワードになったんでideoneにIDを列挙しておくけど
URLリンク(ideone.com)
ID:/arVeZ+Zを誹謗する48個のレスはID:JRYZIrF0を除いて全部のIDがほぼ単発かつ、単発でないものは全て安価がかぶらない
全部ID:JRYZIrF0が自演してることはほぼ明らか
こいつ病気なんじゃねえの
このスレの癌だよ
262:デフォルトの名無しさん
17/12/09 23:25:49.93 /arVeZ+Z.net
乙w
263:デフォルトの名無しさん
17/12/09 23:30:09.58 lAUVYRHS.net
Setクラスってどういうときに使いますか?
Arrayクラスインスタンスにuniqかけて集合だと考えてたけど違うのではと思ったもので。
264:デフォルトの名無しさん
17/12/09 23:58:52.32 JRYZIrF0.net
ここまで自演
----------------------------
265:デフォルトの名無しさん
17/12/09 23:59:53.67 /arVeZ+Z.net
あ、日付が変わるw
266:デフォルトの名無しさん
17/12/10 00:00:06.57 ML6lMJWk.net
変わったーw
267:デフォルトの名無しさん
17/12/10 00:02:47.92 nDrrD3Ex.net
あーあ、これでruby-listかruby-devで発言せず逃げ回ったことが確定しちゃった
268:デフォルトの名無しさん
17/12/10 00:17:50.29 MJKB1Uts.net
ruby-devでリテラルの最適化の話がずっとあるけど、
やっぱ、ArrayもStringみたいになるのかな?
269:デフォルトの名無しさん
17/12/10 00:32:18.71 /jbkU8iJ.net
>>254
uniq だと O(n) かかるので
Set だとハッシュを使っているだろうから O(1) でいけるんじゃないかな
270:デフォルトの名無しさん
17/12/10 00:37:16.10 fgyE63pk.net
>>259
3の型付けなんて最適化や速度upで入れたいって言ってるわけでなぶんそうなるだろ
ruby-listでfrozen_string_literal前提の話とかちょろちょろ見るようになったし
型そのものはあんまり興味ない
希望の書き方とかる
271:?
272:デフォルトの名無しさん
17/12/10 00:38:47.43 fgyE63pk.net
タイプミスった、ごめん
>>259
3の型付けなんて最適化や速度upで入れたいって言ってるわけでなぶんそうなるだろ
ruby-listでfrozen_string_literal前提の話とかちょろちょろ見るようになったし
型そのものはあんまり興味ない
希望の書き方とかる? -> 希望の書き方とかある?
273:デフォルトの名無しさん
17/12/10 00:50:55.71 MJKB1Uts.net
あんまりイメージわかないけど、可能なら型をrubyの文法のif文とかメソッドチェーンに組み込みたい
一度、ここでアンケとってruby-listで型の希望の書き方とか立ててみる?
274:デフォルトの名無しさん
17/12/10 01:14:35.57 XVX0tsBl.net
ruby-listに直でアンケとっても良いけど
荒らしもいなくなった様だからやってっみる?
275:デフォルトの名無しさん
17/12/10 01:28:00.42 ML6lMJWk.net
なんか番号とんでるけど、まだあの荒らしいるのかw
276:デフォルトの名無しさん
17/12/10 01:40:44.61 ZzgYAKrD.net
投稿時はruby-listかruby-devのどちら向けの話題なのかワードを入れておく?
x : Integer
は、ありきたりというか仮引数の時ハッシュと間違いやすいだろ
繋げて書けるように
Integer =_ x = nil
みたいなのどうよ
277:デフォルトの名無しさん
17/12/10 01:44:56.11 nRE+Ifdg.net
元々、荒らしは、全部のスレで、いちゃもんを付けてくる。
漏れも、何回も攻撃されてる
単発ID で「間違ったこと書き込むな」とか、荒らしが書き込むと、
すぐに違うID で「そうだよな」みたいに、荒らしに同調するレスが付く。
深夜でもそうだから、荒らしに同調する奴が居るなんて、あり得ない
プログラミングの話は、一切できないくせに、批判ばっかり書いてるのが荒らし
ただ、Ruby, JavaScript のスレでは、
荒らしにかまうから、喜んで居着いてるだけ
荒らしは一切、無視すべし!
仕事をした事もない奴と、話をしても仕方がない
278:デフォルトの名無しさん
17/12/10 01:49:21.28 nRE+Ifdg.net
スレに、ワッチョイが無いから、荒らしが来る
ワッチョイを導入すれば良い。
そうすれば、自演できない
279:デフォルトの名無しさん
17/12/10 01:50:52.64 fgyE63pk.net
自演できる荒らしが喜びそうだから却下
280:デフォルトの名無しさん
17/12/10 01:55:18.69 ZzgYAKrD.net
>>268
おい、スレの進行を妨害するなよ
おまえ荒らしか?
281:デフォルトの名無しさん
17/12/10 01:57:14.83 8z/4vDLR.net
荒らされてると聞いてきたら型の話してる…
しばらく界隈から離れてたら静的型付け実装か
282:デフォルトの名無しさん
17/12/10 01:58:55.58 fgyE63pk.net
=_ ←これ何?
ruby-listで受けんのこれ?
どう見ても無理っぽい
283:デフォルトの名無しさん
17/12/10 02:12:19.13 ZzgYAKrD.net
いや、自分の希望の書き方なんだから人気のある書き方でなくても良いでしょ
それにもしかしたらruby-listで大人気になるかもしれないし
後、さっき思いついたけど
definedtype?( Type )
みたいなのどう?
284:デフォルトの名無しさん
17/12/10 02:28:55.59 9Zlb3ltO.net
なんで型の希望の話になってんの?
すまんが今来て、この1スレからさらっと読んだけど理解できんかった。
とりあず、このスレからruby-listに要望だずにしても
下記まとめなんかあるといいかも(オレがほしいw
・経緯
・メリット
・デメリット
・他の言語の場合、例
OOP言語で簡単なのがrubyの良いところだと思う。
285:デフォルトの名無しさん
17/12/10 02:32:48.91 8I95hEEE.net
簡単ではないだろ
Rubyはとんでもなく複雑な言語で、メジャーな言語の中だとC++の次くらいには複雑なんじゃないの
ちなみにRubyが複雑なのはMatzも認めてるよ
286:デフォルトの名無しさん
17/12/10 02:39:29.90 ZzgYAKrD.net
スレ進行を妨害するなよ荒らし
失せろ
287:デフォルトの名無しさん
17/12/10 02:57:07.13 UtvIbdgM.net
荒らしがそろそろ暴るだろうから今のうちにテンプレを張っておく
>粘着する荒らしがスレを何ヶ月も荒らしたため、
>ネガキャン、逸脱した連投、荒らし行為を行う人がいた場合は対策としてruby-listやruby-devへ誘導するようにお願いします
>自演でIDを変えて荒らしを繰り返すため、加勢するIDも含めて誘導するようお願いします
>
>荒らしはruby-listやruby-devを追い出されたため現在、出入り禁止になっています
>そのため過去、誘導されると逃げ回った経過があるので、コミュニティで発言を確認するまで誘導してください
288:デフォルトの名無しさん
17/12/10 03:21:46.15 1HHF8E2/.net
ruby-listだと恥ずかしくて聞きにくいのでこちらで質問します
a = [[1,2,3],nil, 4..10]
a.include?(5) => false
これで、trueにならないのはどうしてですか?
289:デフォルトの名無しさん
17/12/10 03:27:29.16 FZ4Yj2IT.net
>>274
そうだな
RubyはOOPで一番簡単な言語だと思う
>>275
むしろメジャーな言語の中で
一番シンプルだと思う
たとえばJavaScriptの方が複雑
290:デフォルトの名無しさん
17/12/10 03:44:33.44 UMP8yhyZ.net
>>278
a.include?(5) を小さく噛み砕くと以下になる
([1,2,3] == 5) || (nil == 5) || ((4..10) == 10)
これがtrueにならない理由
>>279
お前、まだ居るんか?
とっとろ消えろ
291:デフォルトの名無しさん
17/12/10 04:36:57.56 rydPLt/1.net
荒らしの連投が収まったからか、昨日、一昨日の書き込みに比べてえらく穏やかになったな
マジruby-list様々
292:デフォルトの名無しさん
17/12/10 04:56:13.97 fgyE63pk.net
>>278
Ruby2.4 リファレンスより
include?(val) -> bool
配列が val と == で等しい要素を持つ時に真を返します。
荒らしよけruby-list
293:デフォルトの名無しさん
17/12/10 05:52:58.55 nRE+Ifdg.net
荒らしは、色んなスレに、いちゃもんを付けてる。
JavaScript, Ruby のスレだけではなく、全部のスレを荒らしてる
荒らしは、仕事をした事がないから、反応するものには、何にでも噛みつくだけ
徹底的に、無視した方が良い
294:デフォルトの名無しさん
17/12/10 06:18:10.98 rydPLt/1.net
失せろ
スレの進行の妨害を繰り返す荒らしが
295:デフォルトの名無しさん
17/12/10 08:42:40.84 KNXh5gp+.net
rubyで型を書けるようになったとしても、コメントにアノテーションとして書けるようにするくらいが無難だろうて
296:デフォルトの名無しさん
17/12/10 16:46:51.98 IY8S1+HK.net
荒らしはあぼーんはずして見に来てるくせに、
毎回の見えてないアピールが糞うざい
297:デフォルトの名無しさん
17/12/10 19:04:47.93 4uyVh43l.net
メソッドの引数、戻り値の型保証を目的としたgems
* contracts
* rubype
他にも色々あるけど触ったことがあるのはこのくらいだな
298:デフォルトの名無しさん
17/12/10 19:37:14.48 0VP/mrFZ.net
URLリンク(github.com)
URLリンク(github.com)
299:デフォルトの名無しさん
17/12/10 20:23:20.11 fgyE63pk.net
古典はクラス=型だけど、
rubyではどうなるんだろ
300:デフォルトの名無しさん
17/12/10 22:15:37.82 TsNv+js2.net
型システムに関する最新の教科書であるTAPL本だとクラス=型だけど、
TAPL本を古典と言い切ってしまえる>>289は異次元世界の住人なのかな?
301:デフォルトの名無しさん
17/12/10 22:24:25.24 ML6lMJWk.net
TAPL本を古典なんてどこにも書いてないんだが?
なに一人連想ゲームしてんの?
302:デフォルトの名無しさん
17/12/10 23:46:36.31 EJLWoC7C.net
型チェックってどうして望まれてるの?
Kernel#instans_of? とか Module#=== を使って
TypeErrorを投げればいいんじゃないのと初心者としては思うんだけど、誰か教えて><
303:デフォルトの名無しさん
17/12/11 00:11:37.08 toSfFiY3.net
>ruby-devはrubyの開発者のためだから場所が正しくない
>Ruby初心者の質問と回答はここしかないな
みたいなカン違いししてるのでなければruby-devで聞きなよ
304:デフォルトの名無しさん
17/12/11 00:22:43.20 zjLRjNAe.net
結局、荒らしはrubyコミュで発言せず逃げたままか
ruby-listやruby-devでいったい何をしでかしたんだアイツ?
305:デフォルトの名無しさん
17/12/11 00:32:30.84 Iio3nuGz.net
>>1のテンプレ見て思ったんだけど、
各Rubyコミュへの案内も入れた方が良いんじゃないか?
ruby-listとruby-devとruby-core辺りでいいからさ
306:デフォルトの名無しさん
17/12/11 00:45:28.12 3l4LlxuK.net
>>292
大規模プログラミング症候群に患わった人たちがおもに困ってる
それとinstans_of?とかModule#===とかが目立つのはRubyらしくない
引数として与えられたオブジェクトは必要なメソッドがあるものとして記述する方がいい (ダックタイピング
307:) ifやcaseでやたらとクラス名が出てくるべきじゃない こういう振り分け処理はrefinmentできれいに分離できるし何より見通しが良くなる case obj when nil ... when Integer ... when ... ... else raise TypeError end これはrefinmentと組み合わせれば obj.do_it だけで済むし分岐のための Module#=== が呼ばれなくなるから処理速度も悪くならないはず 特に似たような処理が散乱して困るようならば検討するべき
308:デフォルトの名無しさん
17/12/11 00:54:42.06 zjLRjNAe.net
ruby-coreは英語だけどいいのか?
309:デフォルトの名無しさん
17/12/11 01:33:14.94 4q7JrCp0.net
switch 文で、型によって分岐していたら、オブジェクト指向ではない。
多くは、設計の間違い
型が増えるたびに、switch 文を修正しないといけなくなる
修正の度に、設定ファイルを書いているデザイナーが、
プログラマーに頼まなければならなくなるから、
プロジェクトの人材配分ができなくなる
310:デフォルトの名無しさん
17/12/11 02:02:26.81 b197wXfn.net
自演うざいな
311:デフォルトの名無しさん
17/12/11 03:05:20.05 cnSlApZQ.net
型はなくていいけど、宣言していない変数は使えないようなオプション欲しい
312:デフォルトの名無しさん
17/12/11 03:18:06.40 329kYh7O.net
ruby-listやruby-devへの案内テンプレどうしますか?
313:デフォルトの名無しさん
17/12/11 12:55:19.76 Y2G40Toz.net
>>301
基地外を誘導するのは迷惑だからやめなさい
314:デフォルトの名無しさん
17/12/11 17:28:47.01 Iio3nuGz.net
自演を繰り返してる奴はruby-listやruby-devを避けてるから問題ない
そもそも入る事が出来ないらしい
それで、どういうテンプレにする?
315:デフォルトの名無しさん
17/12/12 00:09:35.42 MTvcfECB.net
ruby-devやruby-core入れるだけで荒らし避けになるとかスゲー
とりあずテンプレ案を出すのは次スレ立てる直前でどうよ?
316:デフォルトの名無しさん
17/12/13 02:24:54.64 bN1wPs8n.net
Methodのsource_locationみたいなソースの定義や構造の解析に役立つメソッドを探しているけど、
Classやモジュール、オブジェクトにはこういったメソッドないよね?
あれば便利だと思うのに
317:デフォルトの名無しさん
17/12/13 05:18:23.32 wC6gbn87.net
>>305
Pryの show-doc と show-source 便利だよ
pry-docも合わせて使えばCで書かれた組み込みクラスやメソッドのソースも表示可能
318:デフォルトの名無しさん
17/12/14 01:05:44.67 RXlgLxSu.net
Methodのsource_locationは処理に直接挿入できるから便利なのであって、
そこを理解していないだろ
319:デフォルトの名無しさん
17/12/15 01:34:17.23 XFw1hYkv.net
Rubyコードのリファクタリングに関したgemってある?
結構前にリファクタリングのrubyエディションを読んでから興味持ったんだけど
320:デフォルトの名無しさん
17/12/15 07:40:23.15 qyzTygXP.net
原理的に困難って上で言われてるでしょ
こればっかりは個人の信条や宗教の問題じゃなく本当に原理的な問題だから諦めろ
Rubyのリファクタリングや型検査に関しては、無理に静的解析するんじゃなくて、
実際にモジュールをロードしてみて実行時のクラス構造を見て処理するような新しい発想が必要だと思うわ
321:デフォルトの名無しさん
17/12/15 13:34:32.77 AXI+pgWQ.net
>>309
>リファクタリング:Rubyエディション、2010
を読むまでは俺もお前と同じ勘違いをしてた
どのような言語でもテクニックとしてリファクタリングが出来るという事が書いてあるから一度読め
特にrubyは、その記述性からリファクタリングテクニックがぴったり合う
322:デフォルトの名無しさん
17/12/15 16:34:51.13 YAkY+eE5.net
>>310
できるかどうかでいえばできるでしょ
正しさを保証できないだけ
323:デフォルトの名無しさん
17/12/15 22:04:52.20 AXI+pgWQ.net
リファクタリングテクニックを適用するだけの事に、�
324:ウしさの保障とか難癖つけても無駄 俺も以前は、カン違いしていた口だから偉そうな事は言えないけど
325:デフォルトの名無しさん
17/12/15 23:07:30.00 XFw1hYkv.net
>>309
Rubyにリファクタリングが合わないならリファクタリングrubyエディションなんて書籍は出版されないのでは?
内容も、何も考えなくても機械的に適用すればリファクタリングが出来てしまうテクニック集の例示だし
それと故意に話しを摩り替えられたけど聞きたかったのはリファクタリング関連のgemの事
326:デフォルトの名無しさん
17/12/16 00:12:00.58 8dq3CMaj.net
Rubyってどこまでできたら初心者卒業って言っていいの?
327:デフォルトの名無しさん
17/12/16 01:17:58.42 txM0o0nR.net
配列とループが理解できたら
328:デフォルトの名無しさん
17/12/16 01:25:30.77 plaGBrRo.net
なんかできるできないの話に持っていって(持って行かれて?)
負けてるやつがいるなw
Rubyでもなんでもリファクタリングはできるよ。
ただ同じリファクタリングをしても時間がかかる言語と
そうでない言語があるって話
329:デフォルトの名無しさん
17/12/16 01:59:08.24 SSRXngMG.net
>>313
こんなにRuby信者が寄ってきてるのに何一つ出てこないことが何よりの答えだろうね
そもそもRubyってツールでコードを弄るのをダサいと考える文化があるのよ
コードを生成するくらいならメタプログラミングで実行時に何とかするべきだし、
ツールで機械的に適用できるような局所的なリファクタリングなら手でやったほうが早い、っていうのがRuby的な思考
静的言語のIDEに付いてるようなインターフェイスの抽出とかメンバのリネームといった広域的なリファクタリングは便利なものだけど、
ああいうのは実際「原理的に困難」なので
330:デフォルトの名無しさん
17/12/16 05:32:22.64 2bqvN76b.net
>>316
>>317
ネガキャン失敗して顔真っ赤にしながらレスを書いていると思うと最高
331:デフォルトの名無しさん
17/12/16 14:05:47.39 VgVQwchc.net
有能なRubyistである>>318がパッと作ってgithubのURL貼ればそれで済む話だぞ
Matzもコードで語れっていつも言ってるでしょ
332:デフォルトの名無しさん
17/12/16 22:18:04.71 SV1ui7/W.net
>>319
逃げ回っていないでruby-devかruby-listで発言して来いよ
333:デフォルトの名無しさん
17/12/16 23:26:30.07 RIeUS8wT.net
リファクタリングと言えばrubyでRipper使えばコードを構文木化して扱えるよ
だから処理系自身にrubyコードを書き換えさせる事も出来る
それからgemもparseなんちゃらみたいなのが結構出てくるから割とありきたりなネタ
知ったかで騙ってる荒らしだけが無知を披露中
334:デフォルトの名無しさん
17/12/16 23:40:22.84 Ek1/YNvL.net
文脈がわかるわけじゃないからちょっと無理があるけど
335:デフォルトの名無しさん
17/12/16 23:47:36.74 2bqvN76b.net
またまたネガキャン大失敗の巻きか?
プゲラッチョ
336:デフォルトの名無しさん
17/12/16 23:58:10.67 VgVQwchc.net
構文木ってソースコードのDOMでしかないからなあ
>>322も言ってるけどそれでコードの意味がわかるわけじゃない
しかもRubyのASTの場合、静的解析やコード生成ではなく実行することしか考慮されてなくて、
CALLとシンボルだらけで大幅に情報が失われてる
自分でやってみりゃわかるけどかなり扱いづらい代物だよ
337:デフォルトの名無しさん
17/12/16 23:59:37.87 2deUmEBo.net
--dump=parsetreeオプションか、--dump=insnsオプションで使わないの?
338:デフォルトの名無しさん
17/12/17 00:12:46.78 cjnEvY5x.net
>>325
dump=parsetreeの結果から元のソースを復元してみ
無理だから
339:デフォルトの名無しさん
17/12/17 00:23:33.21 ZaumiUQl.net
使いづらいって言われてもそれは主観でしかないよな?
しかも実質、リファクタリング関連のgemを製作する側がどうのこうのであって、
gem利用者には関係なくない?
そもそも他言語での自己書き換えの扱いはもっと
340:やっかいだぞ?
341:326
17/12/17 00:23:43.41 cjnEvY5x.net
一応補足しとくけど、ruby処理系にそういう機能があるかどうかじゃなくて
dump=parsetreeで出力されたASTから元のソースを復元するツールを作ってみてくれ、という意味だぞ
ちなみにripperでも同じだ
もちろん細かいスペースの差異とかは無視するとしても、不可能なのがわかるよ
リファクタリングや静的解析に使うなら処理系付属のは使い物にならないので専用のASTが絶対に必要だ
342:デフォルトの名無しさん
17/12/17 00:29:01.32 ZaumiUQl.net
構文木と並行して字句解析つかえば何も問題ないぞ
というか、そういうgemがごろごろあるぞ?
また知ったかしちゃったのかな?
343:デフォルトの名無しさん
17/12/17 00:34:09.11 cjnEvY5x.net
>>329
意味不明だなあ
字句解析の結果をどうやってASTに紐付けるの?
結局独自に構文解析するんなら、それはつまり「専用のASTが必要」ということになるわけだけど、
自分で言ってること理解してる?
344:デフォルトの名無しさん
17/12/17 00:40:42.77 X5PuZ6e5.net
荒らしはrubyでリファクタリング出来る事が物凄く不満らしいけど、親でも殺されたのか?
これでも読んで落ち着け
つリファクタリング:Rubyエディション、2010
345:デフォルトの名無しさん
17/12/17 00:51:54.13 ZaumiUQl.net
>>330
だからgemがごろごろあるだろ
現実に存在するgemを否定しても現実は変わらんぞ?
そもそも妄想を騙るならruby-devかruby-listで発言しろ
ここはおまえの妄想ノートじゃねよボケ
346:デフォルトの名無しさん
17/12/17 00:52:55.58 Hi83U6qj.net
リファクタリングはどの言語でもできる
ただやりにくい言語とそうでない言語が有る
Rubyはやりにくい。時間がかかる
347:デフォルトの名無しさん
17/12/17 00:55:41.57 X5PuZ6e5.net
>>333
自演ばれてんぞ
348:デフォルトの名無しさん
17/12/17 00:56:47.47 Hi83U6qj.net
誰と間違ってんだよw
349:デフォルトの名無しさん
17/12/17 01:01:05.21 ZaumiUQl.net
いや、まちがっていない
こいつはいつもの粘着荒らしだ
350:デフォルトの名無しさん
17/12/17 01:05:40.92 vwVDXOLh.net
俺には>>336もプロレスの自演に見えるけどね
批判的意見に毎回バカっぽく突っかかって論破されてる噛ませ役
351:デフォルトの名無しさん
17/12/17 01:06:56.15 X5PuZ6e5.net
>>337
も自演か
352:sage
17/12/17 01:22:18.66 bfi3jyev.net
リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
なんで時間がかかるとか難しいとか話しが出てるんだ?
353:デフォルトの名無しさん
17/12/17 01:48:45.01 ZaumiUQl.net
リファクタリングが何か知らない奴が混じってて必死でrubyのネガキャンしてるだけ
ruby-devやruby-listだとすぐ嘘がばれるから
もうこの荒らしは排除いいよ
354:デフォルトの名無しさん
17/12/17 02:32:17.52 Hi83U6qj.net
>>339
> 代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> リファクタリングって頭空っぽにして代数的に適用すれば安全にコードを変えられるテクニックの事だろ?
> なんで時間がかかるとか難しいとか話しが出てるんだ?
代数的に適用するためには、十分な情報が必要だからだよ。
例えば2つの数値の掛け算の答があったとする
その答から、なんとなんの数値の掛け算かを求めるのは大変
答が複数あることもあるからだ
だけどそのうちひとつの数値がわかっていれば、答はすぐに分かる
型にも同じ話が言える。静的型付け言語の場合は、変数に型が定義されているから
そこから代数的に安全にコードを変えられるテクニックが使える
だけど型がわからなければ、そこから代数的に安全にコードを変えられるテクニックが使えない。
だから時間がかかる。一部の人はそのことを”できない"と表現しているがj。
それは違う。いくつもの可能性を検討して、これだ!と安心できるまで時間がかかるのだ。
355:デフォルトの名無しさん
17/12/17 02:47:32.03 BeMxy3i4.net
また自演の長文か
そんなに主張したい事があるなら初心者スレじゃなくruby-devかruby-listで言え
わざわざ初心者スレで嘘をばらまく必要は無いだろう
356:デフォルトの名無しさん
17/12/17 03:00:08.85 X5PuZ6e5.net
リファクタリングにちなんで、
みんなはコードに自己書き換えの処理させる時って何を使ってる?
357:デフォルトの名無しさん
17/12/17 03:28:07.16 BeMxy3i4.net
初心者スレでイキってる荒らしはこういう質問が来ると急に大人しくなるんだよな
俺は普通にdefine_methodを使うぐらいしかしていない
358:デフォルトの名無しさん
17/12/17 03:36:34.62 Hi83U6qj.net
急におとなしくなるって、いま夜中の3時半やで?
359:デフォルトの名無しさん
17/12/17 03:47:09.35 X5PuZ6e5.net
質問に答えられないのはわかった
360:デフォルトの名無しさん
17/12/17 03:48:56.09 Hi83U6qj.net
自演かな?
>>344が答えてるのに、質問に応えられる人がいないなんて
361:デフォルトの名無しさん
17/12/17 03:54:31.53 X5PuZ6e5.net
>>347
お前に言ってるんだが
362:デフォルトの名無しさん
17/12/17 03:58:35.63 Hi83U6qj.net
え? その前に俺の>>342のレスに答えてよ
おとなしくなるって、俺のレスに答えられなくなるって
話だと思ったよ
363:デフォルトの名無しさん
17/12/17 04:02:09.36 vi6El7FV.net
ソースを直で修正し再ロードして実行までをrubyコード内で記述できるわけだから、
言ってしまえばなんだって出来る
gemでparse2rubyとか色々あるし
364:デフォルトの名無しさん
17/12/17 04:18:39.08 X5PuZ6e5.net
>>349
ID:Hi83U6qj「俺はID:BeMxy3i4だ」と言われても、
スレを妨害してるのはお前しかいないんだが
365:デフォルトの名無しさん
17/12/17 04:48:50.54 PRNmBS9S.net
>>349
いつまで逃げ回る気だ荒らし
本人確認するかruby-devかruby-listで早く発言しろ
>>351
Ripper.sexp_rawで良い具合にメソッドを書き換えて使ってる
366:デフォルトの名無しさん
17/12/17 08:13:32.84 6NwF6CYy.net
「ruby-devかruby-listで発言しろ」って言いまくってる奴は単発IDでの自演常習犯だから絡まないでスルーしましょう
>>252でも説明したけど自治の振りをした粘着荒らしです
367:デフォルトの名無しさん
17/12/17 09:16:34.42 X5PuZ6e5.net
自演を繰り返す荒らしがスレ住民全員を荒らし認定か
ruby-devかruby-listで発言するのがそれほど怖いのかな?
368:デフォルトの名無しさん
17/12/17 11:53:12.66 Hi83U6qj.net
妨害って何? Rubyの話ししてるでしょ
>>341へのレスしてくれるのを待ってるんだが?
369:デフォルトの名無しさん
17/12/17 11:54:17.21 Hi83U6qj.net
>>351
それ間違えたw 本当は>>341と書くつもりだった
透明あぼ~んされてて見えなかったから
ずれてしまったのかな?
370:デフォルトの名無しさん
17/12/17 12:02:37.42 X5PuZ6e5.net
スレッドの進行を妨害して荒らすな
371:デフォルトの名無しさん
17/12/17 13:07:26.56 7FFT55NR.net
ちょいと質問です。
Cだと"__"から始まったり、"_"+大文字となったりする識別子は予約扱いだと明文化されてるけど、Rubyはどうなのかちょっと気になってます。
組み込みで__FILE__ __LINE__ __method__とかが定義されているのは知ってます。
gemライブラリの中で2つのアンダースコート"__"から始まり、同じく"__"で終わるメソッド名を定義しようかと考えてるけど、問題ないかなと思って。
372:デフォルトの名無しさん
17/12/17 13:28:17.09 Hi83U6qj.net
@で始まる変数はインスタンス変数
@@で始まればクラス変数
$で始まれば組み込み変数
大文字で始まれば定数
selfもnilもtrueもfalseも変数
373:デフォルトの名無しさん
17/12/17 13:31:03.53 X5PuZ6e5.net
リファレンスで擬似変数の所を見てかぶりそうなのをさければ問題ない
かぶっても見分けられるなら問題ない
374:デフォルトの名無しさん
17/12/17 13:36:18.37 CQTxJs7f.net
Ripper.sexpつかえばソースの自己書き換えできるだろ
誰だよ出来合ないって言ったのは
375:デフォルトの名無しさん
17/12/17 13:41:01.76 Hi83U6qj.net
誰も言ってないよ?w
376:デフォルトの名無しさん
17/12/17 14:16:42.77 CQTxJs7f.net
require "ripper"
require "pp"
pp Ripper.sexp("class Foo p self end")
#[:program,
# [[:class,
# [:const_ref, [:@const, "Foo", [1, 6]]],
# nil,
# [:bodystmt,
# [[:command,
# [:@ident, "p", [1, 10]],
# [:args_add_block, [[:var_ref, [:@kw, "self", [1, 12]]]], false]]],
# nil,
# nil,
# nil]]]]
これでリファクタリングが難しいとか時間がかかるとか言ってた奴もいたな
377:デフォルトの名無しさん
17/12/17 14:21:37.40 Hi83U6qj.net
>>363
読む時間も含めれば、時間かかるんじゃないの?
378:デフォルトの名無しさん
17/12/17 14:32:48.20 CQTxJs7f.net
どんだけ遅いCPU積んでるの?
379:デフォルトの名無しさん
17/12/17 14:42:49.46 Hi83U6qj.net
>>365
何を言ってるの?
リファクタリングっていうのは人が
どうすべきかを考えるんだよ
今何が問題で、どうすべきかを考えるためには
ソースコードを読んで理解しなければならない。
その理解するまでの時間の話なんだけど
で、そのコードをどうしたいのか俺には分からん
まずそこからだよね。君が説明するべきことは
380:デフォルトの名無しさん
17/12/17 15:09:58.55 CQTxJs7f.net
メソッド抽出、インライン化、メソッドシグニチャの変更と、
IDEにある主なリファクタリング機能なんだが
これをrubyには出来ないと言ってた奴が居るらしい
381:デフォルトの名無しさん
17/12/17 15:28:24.67 7FFT55NR.net
>>360
ありがとう。
かぶったらその時ってことで突き進みます。
382:デフォルトの名無しさん
17/12/17 15:45:11.24 X5PuZ6e5.net
Kernelモジュールに__で始まるメソッドがあるからそれにも気をつけろ
わからないことがあったら一度自分でリファレンスを検索して細部までしっかり見ろ
383:デフォルトの名無しさん
17/12/17 15:51:07.46 F+iLZcQ1.net
>>367
メソッド抽出はできるけどインライン化やシグニチャの変更は安全には行えないよ
実際にどのメソッドが呼ばれるかは実行してみるまで分かんないし、メタプログラミングでメソッドが存在しない場合すら珍しくない
384:デフォルトの名無しさん
17/12/17 16:13:40.93 X5PuZ6e5.net
シグニチャの変更は、Ripper.sexpからの配列をまわして旧シグニチャを指定のに書き換えてソースに戻せば良いように見える
そもそもrubymineで出来る
インライン化なんて普通に:assign部分を使われてるところで展開すればいいだけだからシグニチャの変更より楽そう
逆に変数の切り出しも出来るだろこれ
ちょっとコードを書いてみるか
385:デフォルトの名無しさん
17/12/17 16:34:07.16 DhuU3UWX.net
ElectronみたいにWebベースでGUIを作ってRubyで動的処理を行うフレームワークとかないんかな
ActiveScriptRubyは近いけどWin/IE限定の上にRScriptをインストールする必要があるのがイマイチ
インストール不要で軽量・軽快なのが欲しい
386:デフォルトの名無しさん
17/12/17 17:06:02.35 F+iLZcQ1.net
>>371
名前が一致すれば同じメソッドと見做すの?
とんでもないコードクラッシャーになるな
387:デフォルトの名無しさん
17/12/17 19:08:51.91 Hi83U6qj.net
結局Rubyでは候補を出すところまでしかできないんだよね
代数的に適用することができない
その変更が正しいかどうかをコード全体を読んで
考えないといけないから、時間がかかってしまう
388:デフォルトの名無しさん
17/12/17 19:09:35.99 Hi83U6qj.net
>>367
> メソッド抽出、インライン化、メソッドシグニチャの変更と、
> IDEにある主なリファクタリング機能なんだが
少ないね
389:デフォルトの名無しさん
17/12/17 22:52:07.76 X5PuZ6e5.net
荒らすな
390:デフォルトの名無しさん
17/12/18 02:29:22.24 YRbzAMDV.net
ID:Hi83U6qjのレスは矛盾だらけだな
最近の荒らしはこんなに程度が低いの?
391:デフォルトの名無しさん
17/12/18 06:38:14.70 SUjpjhtq.net
じゃあその矛盾がどれかを指摘しましょう
392:デフォルトの名無しさん
17/12/18 06:48:05.27 D7KhQLFT.net
アンチが出たならアンチスレへ誘導をしろ
そのためのアンチスレなんだから
>>378
Rubyについて(アンチ専用) Part004
スレリンク(tech板)
ほら、アンチスレがあるんだからもう来るなよ
そこなら好きなだけネガキャンしても嘘ついても誰も文句を言わないから
393:デフォルトの名無しさん
17/12/18 07:53:27.68 SUjpjhtq.net
矛盾の指摘まだ?
394:デフォルトの名無しさん
17/12/18 07:53:50.72 SUjpjhtq.net
喧嘩ふっかけといてアンチスレに逃げるわけないよね?w
395:デフォルトの名無しさん
17/12/18 08:25:44.94 9Kb0ajxH.net
2ch学習法(今なら5chか)って言われてたやつが通じると思ってるんだろうけどな。
396:デフォルトの名無しさん
17/12/18 12:55:26.65 L2o9nXM3.net
初心者スレはスレ消費激しいけどアンチスレはぜんぜん流行ってないな
アンチ死んでる?
397:デフォルトの名無しさん
17/12/18 14:28:08.01 jKkrC/n/.net
pythonが流行ってるからなあ。本もpythonばっかり
398:デフォルトの名無しさん
17/12/18 15:10:45.19 aXpCltYZ.net
アンチは寂しくて初心者スレに来ちゃうわけか
399:デフォルトの名無しさん
17/12/18 15:26:16.95 XEro/kye.net
>>371を参考にしたらリファクタリング機能を組めた
ソース読み込んでS式書き換えてソースに書き戻すって処理だけど俺でも簡単に出来るんだな
400:デフォルトの名無しさん
17/12/18 15:56:52.19 e/V/7Ip9.net
selfがどこのどいつなのかが問題なんだがな
401:デフォルトの名無しさん
17/12/18 16:10:14.00 zBhLgaSa.net
こっちでは問題にすらなってない
俺ですら出来るレベルだけど、それでも無理ならVMにバイトコード見せてもらったら?
402:デフォルトの名無しさん
17/12/18 16:25:37.10 4mfkLjZ7.net
>>387
そんな事も分からないお前が無能なだけ
もう来なくていいぞ
403:デフォルトの名無しさん
17/12/18 16:30:56.90 zBhLgaSa.net
[:var_ref, [:@kw, "self", [2, 0]]]みたいなノードがありそれを上にたどって行くとselfが何か判る
S式は慣れれば読めるし、処理も楽
404:デフォルトの名無しさん
17/12/18 17:48:23.09 e/V/7Ip9.net
入れ替えることができちゃうから実際には単純にはいかないってことを言いたかっただけ
405:デフォルトの名無しさん
17/12/18 21:23:52.48 SUjpjhtq.net
>>390
問題は、それが分かってもリファクタリングできないってことなんだよね
406:デフォルトの名無しさん
17/12/18 21:26:15.43 SUjpjhtq.net
いや、
リファクタリング前のソースコード からS式を作って
そのS式から「リファクタリングされたソースコードを生成して見せる」って
言うのならどうぞwどうぞw って話だけど
可能不可能の話なら可能。だけど大変すぎなのでやらない
それを「リファクタリングできない」っていう表現で>>392は書いた
407:デフォルトの名無しさん
17/12/18 21:30:35.88 ksjf7Uk6.net
>>393
いや正確に再現するのは不可能だよ
1+1とかダンプしてみ
408:デフォルトの名無しさん
17/12/18 21:33:39.72 SUjpjhtq.net
>>394
俺もS式から(可読性が高い)リファクタリングされた
ソースコードを作り出すのは不可能だと思ってるよw
だからダンプするまでもない
何が言いたいのかって言うと、リファクタリングの話題で
S式、S式、って何が言いたいんだこいつ?ってこと
S式はリファクタリングと何の関係もありません
409:デフォルトの名無しさん
17/12/18 21:35:19.46 SUjpjhtq.net
S式から可読性が悪い変なソースコードに変換することはできるだろうが
そりゃリファクタリングと真逆な行為だしな
410:デフォルトの名無しさん
17/12/18 21:53:35.09 ZBmMrMTz.net
そうそう
ripperのASTはコード生成には不向きであると言ってるだけで、別にRubyを否定しているわけじゃないのに何を必死に喚いてるんだろうね
コード生成に関しては、単に「文法上の同値の解釈」を一切入れない、より低レベルなパーサを作って正確なASTを得らればいいだけのことだ
動的型だって静的型にはない良さが沢山あるのに、アンチ連呼君はそこを無視して「静的型にできることは全てRubyにもできる」という無茶な主張を続けている
そうやって本質を理解しないまま無理筋で反論するから馬鹿にされるんだといいかげん気付け
411:デフォルトの名無しさん
17/12/18 23:16:47.78 LVUvAKSO.net
初心者だからRubyとPythonの違いがわからんのだけど、どう違うんだ?
Rubyがもっと流行ってもいいと思うんだけど
412:デフォルトの名無しさん
17/12/18 23:28:55.91 tRPcthrg.net
おいアンチ、
初心者騙してないでいい加減アンチスレに帰れよ
おまえがリファクタリングできないのは判ったから
413:デフォルトの名無しさん
17/12/19 00:03:52.94 iE/A7V+0.net
自分でうまくソースコードに書き戻す処理が書けないのをRubyの所為にしてはダメだろう
どうしてもやりたい場合はRipper2rubyってgemを使え
414:デフォルトの名無しさん
17/12/19 00:16:12.52 si5W7uAD.net
可能不可能の話に持っていくから(わざとやってる?)
話がややこしくなるんだよ
構文解析は、静的でも動的でもできる。
その時、どれだけの情報を得られるかっていうのは
型情報を書いてある静的のほうが多いのは明白
(動的のメリットは書かなくて良いことなんだから、動的の方が多くなることはない)
静的のほうがより多くの情報を得られる。
それがリファクタリングをする上での情報の多さにつながり、
リファクタリングを自動化する上での情報にもつながる。
静的のほうが予め書いておく情報が多い分、静的解析でわかることが多い。
動的だとわからない情報は、人がコードを見て推測するしかない
人の作業は遅い、リファクタリングの速度につながってくる
リファクタリングが可能か不可能かの話じゃない
作業する時の速度の話
415:デフォルトの名無しさん
17/12/19 00:19:53.94 iE/A7V+0.net
素直にgemのripper2rubyを使え
おまえには無理だから
416:デフォルトの名無しさん
17/12/19 00:21:21.03 si5W7uAD.net
もちろんripper2rubyはリファクタリングをするためのgemではない
417:デフォルトの名無しさん
17/12/19 00:24:43.81 cabpZd/N.net
rubymineを使ってないの?
リファクタリングは簡単だよ
418:デフォルトの名無しさん
17/12/19 00:32:24.61 si5W7uAD.net
俺が言っても信用しないのだろうから、
URLリンク(washiiku.hatenablog.com)
> 上に書いたように変数の型をエディタが察してくれるので、
> 対応するメソッドなどにジャンプしたり、逆に使用されている
> 箇所も一覧で表示できます(ただし静的言語ほど正確ではない)
> JetBrains系ではお馴染みですがリファクタリングが便利です。
> スコープ内の変数名の変更が定番ですが、クラス名などグローバルな
> 名前は型情報からプロジェクト全体のリファクタリングをしてくれます。
> (上述したとおり静的言語ほど正確ではないので、大規模な変更は実用的ではない)
この正確でないというのが問題で、結局人が判断する部分が多くなる。
大規模な変更は実用的ではないのは何故かと言うと
大規模=変更箇所が多い=人が判断する場所が多いので
正しいこと判断するのが大変
419:デフォルトの名無しさん
17/12/19 00:33:30.38 si5W7uAD.net
URLリンク(twitter.com)
RubyMineもかなり頑張ってくれるんですが、それでも原理的に限界があるので、
使った場合、漏れがあったり、あるいは過剰に変換してないか確認が必要だったりしますね(自分の経験上)。
420:デフォルトの名無しさん
17/12/19 00:35:31.16 OxL2RNB7.net
>>406
Rubyについて(アンチ専用) Part004
スレリンク(tech板)
おまえのスレに帰れ
二度と初心者を騙そうとするな
421:デフォルトの名無しさん
17/12/19 00:41:45.22 cabpZd/N.net
出来る出来ないの話じゃないって自分で言い出してからまだ30分も経ってないのに、
出来る出来ないの話に戻したな
これでは誰もアンチを信じてくれないわ
422:デフォルトの名無しさん
17/12/19 00:46:31.62 si5W7uAD.net
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
423:デフォルトの名無しさん
17/12/19 00:47:31.81 OxL2RNB7.net
>>409
長文はいいから自分のスレへ帰れ
ここはおまえの日記帳じゃない
424:デフォルトの名無しさん
17/12/19 00:48:21.71 si5W7uAD.net
>>408
> 出来る出来ないの話に戻したな
いつ俺が出来る出来ないの話に戻した?
実際にRubyMineを使っている人が、
出来ないって言ってるって話?
425:デフォルトの名無しさん
17/12/19 00:49:30.71 OxL2RNB7.net
>>411
アンチが初心者スレで暴れるなら
426:デフォルトの名無しさん
17/12/19 00:49:36.49 si5W7uAD.net
>>410
> ここはおまえの日記帳じゃない
そりゃ俺の日記帳じゃないよw
みんなの日記帳だよ
便所の落書きなんていい方もされているが
俺はその言い方は好きではない
427:デフォルトの名無しさん
17/12/19 00:51:32.45 cabpZd/N.net
スレリンク(tech板)
アンチはアンチ専用スレでやれ
428:デフォルトの名無しさん
17/12/19 00:57:25.70 UYOJvaLF.net
単発IDで自演しまくる自治厨騙りの荒らしには構うな
スルーしろ
429:デフォルトの名無しさん
17/12/19 00:58:50.33 cabpZd/N.net
自演がばれてんぞ
430:デフォルトの名無しさん
17/12/19 00:59:26.95 si5W7uAD.net
単発IDお前やんw
431:デフォルトの名無しさん
17/12/19 01:01:02.38 cabpZd/N.net
アンチスレで好きなだけやれ
ここはお前のようなアンチのためのスレではない
432:デフォルトの名無しさん
17/12/19 01:02:55.81 7WjlvYND.net
そろそろうざいからアンチはアンチスレへ帰れ
433:デフォルトの名無しさん
17/12/19 01:03:46.23 si5W7uAD.net
単発ID、自演ばれてるで?w
434:デフォルトの名無しさん
17/12/19 01:05:19.68 cabpZd/N.net
見えない敵と闘っていないでアンチスレへ帰れ
そこなら好きなだけ自演しても誰も文句を言わないから
435:デフォルトの名無しさん
17/12/19 01:06:10.31 si5W7uAD.net
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
436:デフォルトの名無しさん
17/12/19 01:09:10.98 cabpZd/N.net
アンチやりたいならアンチスレへ行け
ここは初心者のためのスレだ
初心者を騙すためのスレではない
437:デフォルトの名無しさん
17/12/19 01:10:01.09 si5W7uAD.net
神様「お前の願いは叶えられることはなかった」
438:デフォルトの名無しさん
17/12/19 01:11:14.38 7WjlvYND.net
そもそもなんでアンチは発狂してんの?
顔真っ赤にしてないで落ち着けよ
439:デフォルトの名無しさん
17/12/19 01:12:07.22 si5W7uAD.net
発狂はしてないよw
面白いから書き込んでる
440:デフォルトの名無しさん
17/12/19 01:12:28.45 cabpZd/N.net
そんなに初心者スレで荒らし行為やアンチをやりたいのか?
441:デフォルトの名無しさん
17/12/19 01:14:15.45 si5W7uAD.net
荒らしてないよ?
Rubyでリファクタリングは静的言語よりも
大変だって話をしてる
442:デフォルトの名無しさん
17/12/19 01:15:12.45 cabpZd/N.net
初心者スレじゃないと話せないことなのか?
アンチスレでは話せないのか?
443:デフォルトの名無しさん
17/12/19 01:17:14.70 si5W7uAD.net
初心者スレ以外でも話せるよ
ただしアンチじゃないからね。Rubyの特徴を言っているだけ
アンチスレ以外のRubyスレどこででも話をする
444:デフォルトの名無しさん
17/12/19 01:19:57.23 cabpZd/N.net
お前のやってきたことはアンチ以外の何者でもないんだが
これからも、同じ事を続けていく気か?
445:デフォルトの名無しさん
17/12/19 01:22:18.20 si5W7uAD.net
はい
446:デフォルトの名無しさん
17/12/19 01:23:17.40 cabpZd/N.net
つまり、他の人にアンチ行為と受止められていると判ってて、
故意に続けるわけだな?
やめる気は無いのか?
447:デフォルトの名無しさん
17/12/19 01:23:40.17 si5W7uAD.net
ない
448:デフォルトの名無しさん
17/12/19 01:25:41.82 cabpZd/N.net
他の人に故意に不快を与える行為を続けるという事だね
板やレスの利用等を理解しているか?
449:デフォルトの名無しさん
17/12/19 01:27:13.66 si5W7uAD.net
うん
450:デフォルトの名無しさん
17/12/19 01:29:43.14 cabpZd/N.net
つまり、わかった上でやっているという事だね
それと、いまさらだがruby初心者?
451:デフォルトの名無しさん
17/12/19 01:30:38.45 si5W7uAD.net
ウイ
452:デフォルトの名無しさん
17/12/19 01:32:59.85 cabpZd/N.net
つまりRuby初心者だから間違ったことを言っていたという事だね
それはつまり、これからも間違った事を言い続けるって事かな?
453:デフォルトの名無しさん
17/12/19 01:33:45.75 si5W7uAD.net
ノー
454:デフォルトの名無しさん
17/12/19 01:36:06.55 cabpZd/N.net
その返答は、今後は反省して間違ったことを言わない、って事を意味しているのかな?
455:デフォルトの名無しさん
17/12/19 01:39:05.84 si5W7uAD.net
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことより野球しようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ∥i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
456:デフォルトの名無しさん
17/12/19 01:41:22.11 cabpZd/N.net
君は、いままでアンチを繰り返し多くの人を故意に不快にさせてきたわけだが、
今後も続けるのかい?
457:デフォルトの名無しさん
17/12/19 01:42:11.51 si5W7uAD.net
飽きた、>>409まで内容巻き戻すわ
動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる
まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される
この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない
ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない
つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる
458:デフォルトの名無しさん
17/12/19 01:43:46.18 cabpZd/N.net
ではもう一度聞こう
今後は反省して間違ったことを言わない、という意思はあるのかな?
459:デフォルトの名無しさん
17/12/19 01:45:58.37 si5W7uAD.net
じゃまなので透明あぼーんした
460:デフォルトの名無しさん
17/12/19 01:50:12.56 7ZIeceXv.net
そんなことよりJOI2017/2018の話しようぜ
461:デフォルトの名無しさん
17/12/19 01:54:22.14 RoMU0mit.net
アンチスレに帰れよアンチ
462:デフォルトの名無しさん
17/12/19 02:06:16.03 cabpZd/N.net
Rubyについて知らない事を知ったふりして話してたわけか
道理で
463:デフォルトの名無しさん
17/12/19 03:08:47.58 GcPOv6XA.net
Ripper.sexp_rawからRipper.sexpに戻すと:stmts_add等が削られて微妙にやりにくい
全部rawの方でいい気がするがRipper.sexpってどういう時に使うんだ?
464:デフォルトの名無しさん
17/12/19 04:03:20.54 UdKVtF6e.net
あれてんなw
型の次は、リファクタリングかよ
初心者の内容か?
俺の場合GoFなんかで書き直したい病が持病です。
んでrspec漏れてしょうもないバグおこす。
ほどほどに持病と付き合おうw
465:デフォルトの名無しさん
17/12/19 04:45:08.67 cabpZd/N.net
>>450
pで見る用に使ってる
Ripper.sexp_rawはppで見ても長いから
466:デフォルトの名無しさん
17/12/19 05:28:28.56 GcPOv6XA.net
やっぱり表示用なんだ
それから出力された配列の操作なんだけど、
配列の中ごろ特定の要素を基に「上の配列に○○が在りかつ後ろの要素に△△があったら××」、
みたいな同定の仕方をしてるんだけど問題ある?
467:デフォルトの名無しさん
17/12/19 06:21:37.16 a07C5OyP.net
配列の操作ってそんなもんだろ
468:デフォルトの名無しさん
17/12/19 07:00:22.12 ykexPK2V.net
リファクタリングで香ばしい展開になっててわろた
オレがおっさんになったのが、たまたま住人がアホなのか、2ch民全体のレベルが下がったのか
469:デフォルトの名無しさん
17/12/19 07:28:41.13 ZuB1zFT8.net
>>455
自治厨の振りした基地外が一人で自演しまくって荒らしてるだけだから無視な
荒らしの狼藉は>>252参照
470:デフォルトの名無しさん
17/12/19 07:38:28.19 yvsoeKM9.net
>>455
Rubyはとっつきやすい分、ニワカとか、簡単だと思って挫折した勘違い君も多いからな。
471:> リファクタリングにしても、用語の定義とか目的知らずに書いてるなあ、ってのばかり。 きちんと理解しようと思ったら、ガウディ本(CTMCP)で計算モデルを理解するのがお勧め。 あと「リファクタリング:Rubyエディション」とかで、以下を把握できる。 ・リファクタリングはプログラム改善に使われることが多い。 ・数多ある改善基準のうち、リファクタリングは何を対象にしているのか? ・改善手法は、計算モデルと、改善の目的により様々。
472:デフォルトの名無しさん
17/12/19 10:23:42.83 si5W7uAD.net
>>457
なんかリファクタリングを理解してないようにみえる。
リファクタリングと計算モデルがどうつながるのか説明してみ
その後、あんたの意見と同等の話をしているサイトを言ってみ
リファクタリングと計算モデルは
ほとんどつながりがないことがわかるからさ
473:デフォルトの名無しさん
17/12/19 12:22:26.77 B3Kk66cH.net
結局、荒らしはアンチスレに帰らんかったのか
そりゃアンチスレも落ちぶれるわ
474:デフォルトの名無しさん
17/12/19 22:13:01.86 5rvtlxA7.net
>>428
>Rubyでリファクタリングは静的言語よりも
>大変だって話をしてる
いいや、している話は:
「動的型付け言語は静的型付け言語よりも大変だ」
だよ
その主張は(個人的には)認めるけど、それだけでRubyスレに
粘着するのは荒らし行為そのものではないかな?
URLリンク(hissi.org)
それだけ「動的型付け言語におけるリファクタリング」に関心があるなら、
>>107 で紹介した専用スレへ移動すべきだよ
475:デフォルトの名無しさん
17/12/20 00:18:03.50 n7Ixbq8J.net
>>460
俺はそんなことは言ってないので他人の意見だね
Rubyが大変なのはソースコードを読むときだよ。書くときは比較的楽。
楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
Rubyは書くときは楽で、読むときは大変
静的型付け言語はその逆
理由はまんまだが型という情報が書いてあるから。
情報を多く書かなければいけない静的型付け言語は大変で
でも情報が多く有るから静的型付け言語はわかりやすい
ただし前提として複数のモジュール(クラス等)から成り立ってる場合と
言ったほうが良いかもな。ローカル変数なんかは型が書いて無くても
すぐ近くにコードがあって該当の関数しか見なくていいから型がなくても大丈夫
一番の問題は複数モジュールから成り立っていて、特に別ファイルに分かれている場合
こういうのはドキュメントとして型情報を書いておかないと、わけわからなくなる
だけどドキュメントとして型情報書くなら、タイプ数は静的型付け言語より多くなってしまうので本末転倒
Rubyは書くときは楽(ドキュメントを書かないという前提)で、読むときは大変
ドキュメントを書くなら、それはソースコードに一元化した方がいいよって話になる
476:デフォルトの名無しさん
17/12/20 00:50:26.05 gjXzJsOL.net
中身スカスカの長文なんてよく書き込めるな
頭の中もスカスカしてそう
477:デフォルトの名無しさん
17/12/20 00:55:47.63 4hmeAMNm.net
>>462
そのレスは何が言いたいのだ?
そのレスの中身を教えてくれw
478:デフォルトの名無しさん
17/12/20 02:10:20.76 wlycKVFQ.net
rubyの可読性のよさには感動する
DSLとかすごい
たまーにendだらけになるのは難点w
479:デフォルトの名無しさん
17/12/20 02:23:39.76 Jv20jxkb.net
動的にリファクタリングさせるコード書いてるけど、
書けないやつはrubymine使えば良くね?
480:デフォルトの名無しさん
17/12/20 02:51:18.20 s+zCj7ov.net
配列の操作そのものが難しいと勘違いしてるんじゃないか?
配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
class Array
def acces(ary = [])
return self if ary.empty?
colect_int = ary.dup
result = self[colect_int.shift]
return colect_int.empty? ? result : result.acces(colect_int)
end
end
481:デフォルトの名無しさん
17/12/20 05:23:54.83 Jv20jxkb.net
配列が苦手とか言われても
パーサから順にイベントを渡されて処理するより明らかに難易度低いだろ
482:デフォルトの名無しさん
17/12/20 06:54:28.40 6Esz8d8C.net
今のところ、リファクタリングについて誰ひとり説明できてないぞ?
もっとシンプルに表現できるだろw
483:デフォルトの名無しさん
17/12/20 08:05:26.87 DZ3d9p1Y.net
>>468
というお前さんも説明出来ない訳だが。
484:デフォルトの名無しさん
17/12/20 08:07:18.11 DZ3d9p1Y.net
>>458
数十レスも書いといて「リファクタリングとはこういうものだ」とすら書けない奴が何か言ってる。
485:デフォルトの名無しさん
17/12/20 08:45:35.24 Za3FAu+s.net
おい無職
自演はやめとけ
486:デフォルトの名無しさん
17/12/20 14:31:38.22 Za3FAu+s.net
毎朝7時8時から書き込める荒らしは何の仕事してるんや?
487:デフォルトの名無しさん
17/12/20 18:57:50.54 2lbW5JOk.net
RubyVM::InstructionSequence.compile("class Hoge end").eval
のコードを実行したら直後に
p Hoge.new
って問題無く書けるのか
コンテクストが別々だと勘違いしてた
488:デフォルトの名無しさん
17/12/20 22:34:07.59 4hmeAMNm.net
>>470
リファクタリングを理解してませんと認めたってことでOKだね
489:デフォルトの名無しさん
17/12/20 22:35:24.96 4hmeAMNm.net
>>472
俺は出勤が9時だからだよw
会社まで30分
490:デフォルトの名無しさん
17/12/20 22:48:45.50 4hmeAMNm.net
>>466
> 配列の操作そのものが難しいと勘違いしてるんじゃないか?
> 配列の操作に使うコードって大概は下みたいに10行前後で書けるだろ
書けてないだろ?
それ何の処理するコードだよ
[1,2,3].acces([])
=> [1, 2, 3]
[1,2,3].acces([1])
=> 2
[1,2,3].acces([1,2])
NoMethodError: undefined method `acces' for 2:Integer
from (irb):6:in `acces'
from (irb):29
from C:/Ruby24-x64/bin/irb.cmd:19:in `<main>'
お前がそれじゃ、配列は難しいという結論にしかならんぞ
491:デフォルトの名無しさん
2017/12/
492:20(水) 22:56:44.83 ID:4hmeAMNm.net
493:デフォルトの名無しさん
17/12/20 23:30:14.73 nhQOfr/3.net
2.5まで後5日
494:デフォルトの名無しさん
17/12/21 01:18:36.01 l5/5gdQz.net
>>477
アンチスレへ帰れ
おまえが働いていないのはわかったから
495:デフォルトの名無しさん
17/12/21 01:42:59.97 prpojwIY.net
>>479
いい加減学習しよう
422 自分:デフォルトの名無しさん[sage] 投稿日:2017/12/19(火) 01:06:10.31 ID:si5W7uAD [10/23]
はっきり言わないと理解できないのかな?
俺はアンチスレには行きません
何度言われてもね
496:デフォルトの名無しさん
17/12/21 02:12:25.62 IcTBGDe8.net
自演ばれてんぞ
497:デフォルトの名無しさん
17/12/21 02:49:55.63 l5/5gdQz.net
>>480
初心者を騙していないではやくアンチスレへ帰れ
デマばかり垂れ流しやがって
498:デフォルトの名無しさん
17/12/21 03:03:06.96 h5j2wgPh.net
例えば、構造やサイズが変わる多次元配列の要素を辿って行く必要がある場合、
添え字だけ集めて一括指定で辿れる様にするのって普通?
499:デフォルトの名無しさん
17/12/21 11:43:09.31 XGDp/jet.net
>>477
はい。正解
500:デフォルトの名無しさん
17/12/21 12:10:12.13 ow9tew52.net
>>477
>ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善すること
オブジェクト指向知らないやつがググってコピペか・・・つまらん。
501:デフォルトの名無しさん
17/12/21 13:37:15.11 K/addjJ3.net
>>483
def pickup(a,b,c,d)
a[b][c][d]
end
みたいな?
あ、これじゃ次元数が固定だからダメなのか
502:デフォルトの名無しさん
17/12/21 14:41:34.48 nqxJQXq0.net
Array#dig
503:デフォルトの名無しさん
17/12/21 18:29:48.77 ztrEyuDD.net
文字列に対して
・0~9の一桁の数であれば頭に0を付け足す(例:00,01
・10以降はそのまま
という処理を行いたいんですが、正規表現でスパッとかけたりするんでしょうか
イメージとしては
text = "9"なら09
text = "10"なら10
として出力(print)がしたいです
gsubで置換できないか試しているのですがうまいこといかず・・・
アドバイス頂けますと幸いです
504:デフォルトの名無しさん
17/12/21 18:34:23.75 2OtOKx8R.net
正規表現よりも sprintfフォーマットを使おう
puts "%02d, %02d,%02d,%02d" % [1,5,10, 100]
#=> 01, 05,10,100
505:デフォルトの名無しさん
17/12/21 18:34:49.31 ZdPTZj/x.net
sprintf "%02d" % 9
sprintf "%02d" % 10
506:デフォルトの名無しさん
17/12/21 18:51:00.27 2OtOKx8R.net
ちなみにあえてgsubでやるなら
'1'.gsub(/^(?=\d$)/, '0') #=> "01"
'42'.gsub(/^(?=\d$)/, '0') #=> "42"
507:デフォルトの名無しさん
17/12/21 18:51:08.76 8yE94KQ4.net
%w(0 1 5 9 11 99 108 1024 16384).each do |x|
p x.sub(/^([0-9])$/) { "0#$1" } # キャプチャを使った例
# p x.sub(/^(?=[0-9]$)/) { "0" } # 先読みを使った例
# p "%02d" % x.to_i # 整数値に変換して書式文字列を使った例
end
"00"
"01"
"05"
"09"
"11"
"99"
"108"
"1024"
"16384"
508:デフォルトの名無しさん
17/12/21 19:24:42.40 gRGJJy1x.net
ありがとうございます!sprintf、こういう風に使えるのですか。便利ですね・・・
正規表現での場合も教えていただきありがとうございました
勉強になりましたm(_ _)m
509:デフォルトの名無しさん
17/12/21 19:26:00.72 gRGJJy1x.net
>>493
すみません、ID変わってますが>>488です
510:デフォルトの名無しさん
17/12/21 19:32:53.88 aIK1VRoC.net
正規表現は後で泣くからなるべく使わないほうがいい。
もし使うのなら
複雑のは避けて
シンプル+シンプルと組み合わせて使うといい。
511:デフォルトの名無しさん
17/12/21 20:20:34.35 prpojwIY.net
おい >>466
配列操作簡単なんだろう?
バグ修正はまだか?
512:デフォルトの名無しさん
17/12/21 22:24:14.24 OUKJWky+.net
>>461
>俺はそんなことは言ってないので他人の意見だね
いいや、もろに言ってるよ
君のレスに含まれるRubyという単語を改変してみた:
>動的型付け言語が大変なのはソースコードを読むときだよ。書くときは比較的楽。
>楽の意味がわからないなら、タイプ数が少ないと言い換えても良い
:
>理由はまんまだが型という情報が書いてあるから。
>情報を多く書かなければいけない静的型付け言語は大変で
>でも情報が多く有るから静的型付け言語はわかりやすい
なんら違和感もないだろう?あいも変わらずごく当たり前な一般論を語っているだけ
さあ、Rubyに限定されない「動的型付け言語におけるリファクタリング」を
語りたいのなら、このスレに粘着せず、>>107で紹介した専用スレへ移動しなさい
513:デフォルトの名無しさん
17/12/21 22:29:08.65 prpojwIY.net
>>497
改変しておいて、俺が言ってるとか意味不明
改変しなければ、言ってないってことじゃないか
514:デフォルトの名無しさん
17/12/22 10:53:32.70 zY/Ujd0Y.net
496から498までの自演を見てると小学生の演劇見せられてる気分になる
って事で晒しage
515:デフォルトの名無しさん
17/12/22 15:56:43.92 o0zFMz04.net
>>497
>>461 はたぶんちょっと勘違いしてる。
単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
リファクタリングが楽だと思ってるんじゃないかな
リファクタリングの考え方は言語は関係ないよ
516:デフォルトの名無しさん
17/12/22 15:57:53.00 o0zFMz04.net
つか、Ruby関係ないかw
517:デフォルトの名無しさん
17/12/22 16:08:37.20 OF22/s+V.net
ruby2.5は何が来るかな
518:デフォルトの名無しさん
17/12/22 17:59:37.34 2CqGXpCv.net
これでTypeScriptやPython方式の型ヒンティングが来たらコミュニティが大荒れするだろうな
519:デフォルトの名無しさん
17/12/22 18:04:00.26 hLTr5w9I.net
Ruby 2.5.0-rc1 リリース (12月14日)
URLリンク(www.ruby-lang.org)
★ 新機能 ★
* バックトレースおよびエラーメッセージが逆順に出力されるようになった (Railsゴリ押し?)
* トップレベルにおける定数検索の削除
* rescue/else/ensure が do/end ブロック内にも直接書けるようになった
* yield_self の追加
★ パフォーマンスの改善 ★
(略...
★ その他の注目すべき 2.4 からの変更点 ★
* Onigmo 6.1.3 の取り組み (実際は Ruby 2.4.1 にて取り込み済み)
* bundler の取り込み
その他略...
詳細は URLリンク(github.com) に書かれてる
☆彡 ☆彡 ☆彡 ☆彡 ☆彡
第三者の記事:
* サンプルコードでわかる!Ruby 2.5の主な新機能と変更点 URLリンク(qiita.com)
520:デフォルトの名無しさん
17/12/22 18:20:37.57 bOdX3AhV.net
ね
ん
ま
つ
521:デフォルトの名無しさん
17/12/22 21:24:19.52 6yk8gXaG.net
>>500
> 単純に静的言語はコンパイルである程度構文エラーを検出できるから楽を、
> リファクタリングが楽だと思ってるんじゃないかな
違うよ。静的型付け言語の場合が簡単なのは、
ソースコード上に型が書いてあるからだよ
コンパイルエラーは関係ない
例えば
class Klass {
522:デフォルトの名無しさん
17/12/22 21:28:48.59 6yk8gXaG.net
(間違って途中で送信した)
例えば
class Klass {
function foo() { }
}
みたいなクラスがあって、
fooをbarに書き換える時
↓ このように型が書いてあれば、ここのfooもbarに
書き換えなきゃいけないとわかる
function f(Klass k) {
k.foo();
}
↓ でもこの場合は、書き換えれば良いのかわからない
function f(k) {
k.foo();
}
ソースコード全体から、fを呼び出している所をすべて探して
引数にKlassクラス(もしくはそれを継承したクラス)を
渡していることを確認しなければいけない
523:デフォルトの名無しさん
17/12/22 21:38:46.01 6yk8gXaG.net
今回は一番簡単な例としてメソッド名の変更を例にしたが
例えば、メソッドの引数の数が変わったときも
型がわかれば、メソッドが特定できるので、変えなければいけない場所がわかる
メソッドが消えたこともわかる
クラス名で検索すれば、そのクラスを使ってるモジュールもわかるしね
シグネチャの変更に関わる部分は、静的型付け言語の場合は
すごく簡単に変更すべき場所を特定できる
524:デフォルトの名無しさん
17/12/22 21:40:18.92 6yk8gXaG.net
ここにリファクタリングの種類が書いてあるが、大部分は
シグネチャ(クラスやメソッドの名前や引数の変更)を伴うものだよ
URLリンク(so-zou.jp)
525:デフォルトの名無しさん
17/12/22 21:42:20.33 2CqGXpCv.net
Rubyの静的解析の難しさに関して言えば、単にソースに型が書いてないというだけではないんだよなあ
Rubyって、静的なクラス定義というのがそもそも存在しないんだよ
動かしてみて、RubyのVMのメモリ上に結果としてクラスオブジェクトができて、そこではじめてクラスが定義されたことになるの
この式のクラスは何か?とか考える以前に、クラスなんてものは動かしてみるまで無いの
526:デフォルトの名無しさん
17/12/22 21:48:13.59 6yk8gXaG.net
そう。それもあるね。
動くか、動いてないかの二択じゃないか?って
思うかもしれないがぜんぜん違う。
動いてない状態というのは一つしかないが、
動いている状態というのは無限に近い数ある
「0」と「0以上」の違いと同じ
動いてないという一つの状態なら、全部を調べることも可能だが、
動いているという無限にある状態は、調べ上げることは不可能
527:デフォルトの名無しさん
17/12/22 22:04:35.06 5nY8hqH+.net
>>498
Rubyの箇所をJavaScriptやPythonといった他の動的型付け言語へ
改変しても当てはまる事柄しか語っていないと指摘しているんだよ
以下 >>506-509 まで、Rubyには限定されないありふれた一般論が続く
>>501
つまり、そうゆうこと
>>511
>Rubyって、静的なクラス定義というのがそもそも存在しないんだよ
これも「動的型付け言語って、静的なクラス定義というのがそもそも存在しない」という話だね
Rubyに限らずJavaScriptやPythonといった他の動的型付け言語であれば、
「クラスなんてものは動かしてみるまで無い」のが動的型付けの原理だよ
528:デフォルトの名無しさん
17/12/22 22:17:37.91 6yk8gXaG.net
「クラスなんてものは動かしてみるまで無い」かもしれないが、
「仕様(やりたいこと)は動かしてみなくてもある」
ソースコードは動かさなくても「そのクラスは○○であること」
(○○にはメソッドが有ることとかはいります)を前提に
書いてあるというのに「動かしてみるまで無い」ことに意味があるのだろうか
529:デフォルトの名無しさん
17/12/22 22:21:48.38 2CqGXpCv.net
>>513がRailsを触ったことがないのはわかった
530:デフォルトの名無しさん
17/12/22 22:25:46.71 6yk8gXaG.net
>>514
反論して良いんだよ?
Railsがなんだって?
普通はデータベースにそのフィールドが
有るという前提でコード書くよね?
531:デフォルトの名無しさん
17/12/22 22:27:24.55 2CqGXpCv.net
>>515
それをどうやって実行前に認識するの?
DBのスキーマをクエリして調べるのか?w
532:デフォルトの名無しさん
17/12/22 22:32:17.34 6yk8gXaG.net
>>516
DBのスキーマを実行時に変えたりすることなんてまず無いだろ
実行前にスキーマは決まってる。
ならクラスも実行前に生成することは可能なわけだが?
Railsが実行後に決めているからと言って、実行時に決まることにはならない
スキーマは実行前に決まっているし、今話してるソースコードだって
そのフィールドが存在するという前提のソースコードを書いてるだろ
動的に生成してるその情報は、本当は実行前に決まってるんやで?
533:516
17/12/22 22:43:01.67 2CqGXpCv.net
可能かどうかとやるかどうかは別問題だろう
それRuby3の型検査の仕様として提案してみろ、このスレどころではなく罵倒と嘲笑の的だぞ
534:デフォルトの名無しさん
17/12/22 22:44:49.43 6yk8gXaG.net
>>518
これのどこが型検査の仕様なんだ?
そりゃ馬鹿にされるだろうな
型検査の仕様だと言ったお前が
535:デフォルトの名無しさん
17/12/22 22:49:53.16 6yk8gXaG.net
動的言語といっても本当に動的に決まることはほとんどなく
静的に決まってる情報を元に動的に作ってるだけなんだよな。
だから実行するたびに毎回同じものが作られる。
毎回同じものを作るなら、キャッシュするかのように
最初から作っておけば良いわけさ
536:デフォルトの名無しさん
17/12/22 22:50:08.15 2CqGXpCv.net
>>519
DBスキーマまで考慮したメタプログラミング対応の静的解析ツールを作るってこと?
実用的なものができると本気で思うなら作ればいいんじゃね?
みんな喜ぶし、そんな実績があればそれこそMRIの主要メンバーとしてRuby3の仕様決定を主導できるぞ
頑張れよ
537:デフォルトの名無しさん
17/12/22 23:01:34.92 6yk8gXaG.net
>>521
だから動的言語の仕様じゃ無理だって話してるじゃんw
ソースコードにクラスという型を書いてあるから多くのリファクタリングが簡単に出来るようになる
静的に決まってるならソースコードに静的に書けるわけで、
静的に書いておけば、リファクタリングが簡単に早くできるって話をしてる
538:デフォルトの名無しさん
17/12/22 23:36:34.81 5nY8hqH+.net
>>522
だからそれはRubyだけでなくJavaScriptやPythonを含む
大半の「動的型付け言語じゃ無理だ」っていう当たり前の話だろ?
539:デフォルトの名無しさん
17/12/23 00:24:15.46 eRzaIxhX.net
動的メソッドは?(初心者並感)
540:デフォルトの名無しさん
17/12/23 07:12:36.09 SJqo2RLv.net
>>522のその論理はもういいよw
食いたくないのに食わされてお腹いっぱいっすわ
541:デフォルトの名無しさん
17/12/23 07:28:35.18 SJqo2RLv.net
リファクタリングはシンプルにしていくのが目的なのに、話を小難しく複雑にしたいのはなぜだ
>>512 とか。
動的言語うんぬんゆってるやつから不吉な匂いがする
542:デフォルトの名無しさん
17/12/23 10:11:10.96 f0qvO5Sa.net
>>526
リファクタリングは、シンプルにしていくのが目的
だから、話を小難しく複雑したくない?
シンプルにしたいのはリファクタリングであって
「話」の話は関係ないよ
543:デフォルトの名無しさん
17/12/23 10:11:40.67 f0qvO5Sa.net
>>525
食いたくないなら見るな
544:デフォルトの名無しさん
17/12/23 10:13:50.17 AknL/7GP.net
このスレはいっつも議論してんなぁ
みんな日中は何してる人なの?
545:デフォルトの名無しさん
17/12/23 10:18:01.60 f0qvO5Sa.net
普通に仕事してるよ。
だから平日の日中は書き込めない
546:デフォルトの名無しさん
17/12/23 10:58:49.51 YmDQ4aAw.net
Rspecで下みたいな書き方ってあり?
それとも避けられる?
# def f n
# n + n
# end
context 'fの引数が0から255のとき' do
??256.times do |i|
????it { expect( f(i) ).to eq (2 * i) }
??end
end
547:デフォルトの名無しさん
17/12/23 11:05:45.83 QLWK33W3.net
>>531
テストの一般論で言えばダメ
それ結局同じことを実装とテスト両方に書いてるだけで、テストとして意味をなしてない
テストは入出力ともどんな低脳か見ても間違えようのない具体的な値を書くのが鉄則
548:デフォルトの名無しさん
17/12/23 11:10:32.49 YmDQ4aAw.net
>>532
じゃあもし0から255まで全部パスするか書きたいときは
it { expect( f(0) ).to eq (0) }
it { expect( f(1) ).to eq (2) }
...
ってズラっと列挙しろってこと?
549:デフォルトの名無しさん
17/12/23 11:14:45.72 QLWK33W3.net
あと、「nの2倍を返す」という観点と「入力は0から255まで」という観点がごっちゃになってるのも良くない
この場合、前者を代表値(5とか)でテストして、それに加えて後者の観点で境界値(0と255)を試すくらいでいいと思うよ
代表値は冗長かもしれないけど前者の観点をわかりやすく表現するという意味では価値はある
550:デフォルトの名無しさん
17/12/23 11:18:46.43 LnjVX11P.net
プロパティテストにしろよ。
551:デフォルトの名無しさん
17/12/23 11:58:54.91 YmDQ4aAw.net
>>534
なるほど、どうもありがとう
代表値、境界値(+不正な値)を試すくらいでいいんだね
552:デフォルトの名無しさん
17/12/23 15:22:55.73 f0qvO5Sa.net
テステス
553:デフォルトの名無しさん
17/12/23 15:29:55.01 UWK7YGb5.net
荒らしがハッスるしとる
やっぱアンチも人のいないアンチスレより人の多い本スレに来てしゃべりたいのか
かわいそう
554:デフォルトの名無しさん
17/12/23 15:32:00.40 f0qvO5Sa.net
あ、いや、いままでとちょっと違うことを書き込もうと思ったけど
ID変わってたかなーって思っただけ
変わってなかったので違う話はしないよw
あと他のスレには行かないと何度もいってる
あきらメロン
555:デフォルトの名無しさん
17/12/24 09:48:03.56 24EH1p52.net
URLリンク(rubyinstaller.org)
Windows10 に、Ruby を入れようと、
上のページの、7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった
C:\Ruby24-x64\
とフォルダ名を変えたけど、ここからどうやってインストールするの?
それとも、これはインストーラーではないのかな?
556:デフォルトの名無しさん
17/12/24 10:02:29.66 naA/wMe4.net
環境を書いてから
何したいかを言え
557:デフォルトの名無しさん
17/12/24 10:08:38.24 imZP4RC3.net
なんで素直にexe落とさないの?
558:540
17/12/24 10:48:40.19 24EH1p52.net
圧縮された書庫だから、7-Zip Archives から、Ruby 2.4(x64)をダウンロードしたけど、
これはインストーラーとは違うものなのか?
rubyinstaller-2.4.3-1-x64.7z というファイル名だったけど
7-Zip Archives の上にある、RubyInstallers から、Ruby 2.4(x64)をダウンロードしてみるわ
559:540
17/12/24 11:01:29.86 24EH1p52.net
PowerShell で、7-Zip Archives 中の、\bin\ridk.ps1 version を実行してみた
PS C:\Ruby24-x64\bin> .\ridk.ps1 version
---
ruby:
path: C:/Ruby24-x64
version: 2.4.3
platform: x64-mingw32
ruby_installer:
package_version: 2.4.3-1
git_commit: 36aac73
os: Microsoft Windows [Version 10.0.16299.125]
やっぱり、これも、RubyInstaller なのかな?
よくわからない
560:デフォルトの名無しさん
17/12/24 11:02:00.42 A3ERayLu.net
Rubyにパイプラインオペレータってないの?
JavaScriptだと
exclaim(capitalize(doubleSay("hello")));
というカッコの入れ子が
"hello" |> doubleSay |> capitalize |> exclaim;
とシェルスクリプトのパイプのように
流れるような形で記述できるようになるらしいんだけど
561:デフォルトの名無しさん
17/12/24 11:05:46.33 mMj7aGtc.net
>>545
そんなのがあると誰もオブジェクト指向しなくなるからRubyの思想には合わないだろ
素直にメソッドチェインでやるか、さっさと関数型言語に乗り換えるべき
562:540
17/12/24 11:08:13.75 24EH1p52.net
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
ひょっとして、CUI 版のインストーラーなのかな?
(rubyinstaller-2.4.3-1-x64.7z というファイル名だった)
7-Zip Archives 中の、\bin\ridk.ps1 に引数を付けて、
インストールするのかも知れない
よくわからないけど。
インストーラーじゃないかも知れないし
563:デフォルトの名無しさん
17/12/24 11:08:41.37 2eVeUlKQ.net
>>544
>>542
>>545
こんな gem がある
URLリンク(yuroyoro.github.io)
564:デフォルトの名無しさん
17/12/24 11:14:59.06 24EH1p52.net
>>545-546
まさに、Elixir
Matz も、Streem という新言語を考案して、日経Linux に連載していた。
GitHub にあるらしい
565:540
17/12/24 11:29:56.75 24EH1p52.net
7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった
56MB もあるし、\bin の中には、ruby.exe, rubyw.exe もある。
実行環境が揃っているような気もする
実はポータブル版で、環境変数PATH を通せば、実行できるのかも知れない
よくわからないけど、何か捨てがたいw
566:540
17/12/24 11:37:26.57 24EH1p52.net
PowerShell で、7-Zip Archives 中の、\bin\ruby.exe -v を実行してみた
PS C:\Ruby24-x64\bin> .\ruby.exe -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
やっぱり、7-Zip Archives の中にあるやつは、ポータブル版じゃないのか?
ひょっとして、実行もできるかも?
567:デフォルトの名無しさん
17/12/24 12:51:21.82 W/aeQ+z1.net
実行できて当たり前なのに何を言っているのか
インストーラーはパスを通したりするだけだぞ
568:540
17/12/24 13:37:01.71 24EH1p52.net
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
環境変数PATH が通っていないだけで、実行できるの?
ここに、実行環境が一式が揃っているの?
つまり、どこにでも移動できるポータブル版?
569:デフォルトの名無しさん
17/12/24 13:55:33.60 A3ERayLu.net
>>548
期待したけど、やっぱりRubyの文法からは抜け出せないか
DSLが得意と言っても所詮Rubyの言語であることに変わりはないしな
570:デフォルトの名無しさん
17/12/24 13:58:58.91 A3ERayLu.net
>>546
まあ頭が固いw
a + b はオブジェクト指向じゃないっていうんですか?
a.add(b) ってしなきゃいけないですね
571:デフォルトの名無しさん
17/12/24 14:12:36.12 BNj/0IJ2.net
>>555
Rubyに文句を言う前にまずはRubyの仕様くらいちゃんと理解しよう
+は全く特別なところのないごく普通のインスタンスメソッド呼び出しだぞ
関数型でaddにパイプライン使うとしたら
b |> add(a) # add(a, b)に相当
こうなるわけだが、理解してるか?
572:デフォルトの名無しさん
17/12/24 14:15:02.58 A3ERayLu.net
>>556
まあ君はJavaScriptの仕様を知らなくて当然だろうけどね
|> オペレータっていうのは、引数を一つの関数呼び出しの
シンタックスシュガーに過ぎない
だから関数呼び出しを行ってるのと一緒
関数呼び出しをするとオブジェクト指向にならないのか?
そんなわけあるかw