プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
探検
Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
832デフォルトの名無しさん
2017/11/12(日) 01:19:01.73ID:Ob05ibl6833デフォルトの名無しさん
2017/11/12(日) 01:28:26.85ID:pqrFAwxv834デフォルトの名無しさん
2017/11/12(日) 12:29:55.19ID:qqn9BEpx 質問者がいるんだから雑談やめろとかアホだろ
質問に対する回答以外全部荒らしってどういう事だよ
それに回答者がアンカつければいいだけじゃん
謝辞どころか〆宣言すらない質問者がどれだけいることやら
質問に対する回答以外全部荒らしってどういう事だよ
それに回答者がアンカつければいいだけじゃん
謝辞どころか〆宣言すらない質問者がどれだけいることやら
835デフォルトの名無しさん
2017/11/12(日) 12:35:34.52ID:WkrbFi3G ずっとこのスレを荒らしてる奴がいるんだが
頭大丈夫?
頭大丈夫?
836デフォルトの名無しさん
2017/11/12(日) 13:50:01.60ID:9KdAqRKN 静的型のほうがさ宇ぐれてる云々言う粘着してる奴は確かにいるけど
それ以外のささいな会話も荒らし認定ってどういうことよ
それ以外のささいな会話も荒らし認定ってどういうことよ
837デフォルトの名無しさん
2017/11/12(日) 15:17:44.54ID:SkwCxk0Z 雑談に似せた荒らしを行うから荒らし認定されるんじゃない?
荒らし行為やスレの妨害じゃないなら誰も文句なんて言わないよ
そもそも、この期に及んで質問なんてめったに無いとかレスつけたり、
何ヶ月も荒らされてる事を無かった事にする奴って荒らし本人じゃないのか?
荒らし行為やスレの妨害じゃないなら誰も文句なんて言わないよ
そもそも、この期に及んで質問なんてめったに無いとかレスつけたり、
何ヶ月も荒らされてる事を無かった事にする奴って荒らし本人じゃないのか?
838デフォルトの名無しさん
2017/11/12(日) 15:34:09.85ID:GrP4UM5B839デフォルトの名無しさん
2017/11/13(月) 11:16:26.32ID:9i4StzNN rubyのメソッドチェーンがよくわからない
あとフックかけられるポイントも
メソッド呼び終わった直後にフック掛ける方法ってある?
あとフックかけられるポイントも
メソッド呼び終わった直後にフック掛ける方法ってある?
840デフォルトの名無しさん
2017/11/13(月) 20:26:44.92ID:NOdl0XYl >>839
トレースポイントというものがある
https://docs.ruby-lang.org/ja/latest/class/TracePoint.html
TracePoint.trace(:return, :c_return) do |tp|
p tp.return_value
end
"A".downcase.upcase.upcase!
# => "a" => "A" => nil
トレースポイントというものがある
https://docs.ruby-lang.org/ja/latest/class/TracePoint.html
TracePoint.trace(:return, :c_return) do |tp|
p tp.return_value
end
"A".downcase.upcase.upcase!
# => "a" => "A" => nil
841デフォルトの名無しさん
2017/11/13(月) 23:44:35.19ID:9i4StzNN おおー、これは便利だ
ありがとう
ありがとう
842デフォルトの名無しさん
2017/11/13(月) 23:58:39.44ID:NOdl0XYl 追記
全てのあらゆるメソッドに介入するため、
if tp.path == __FILE__ したり、
if tp.method_id == :method_name したりして範囲を絞ると見やすくなる
他には自家製クラス・モジュールであればprepend使って面白おかしくすることも可能
全てのあらゆるメソッドに介入するため、
if tp.path == __FILE__ したり、
if tp.method_id == :method_name したりして範囲を絞ると見やすくなる
他には自家製クラス・モジュールであればprepend使って面白おかしくすることも可能
843デフォルトの名無しさん
2017/11/14(火) 19:27:47.47ID:hugtgo3r コードゴルフで1000までの素数を標準出力に出力ってのをやってるけど
60文字が限界だ。誰か画期的なの教えてくれ。
60文字が限界だ。誰か画期的なの教えてくれ。
844デフォルトの名無しさん
2017/11/14(火) 20:35:46.66ID:43++cTdw 過去スレには結構そういうのが載ってると思うけど参考にしてみたら?
今現在はあんまり流行っていない、
というかコードをスレに書かないと誰も乗ってこないと思う
あと、変わったお題ならプチ盛り上ると思う
今現在はあんまり流行っていない、
というかコードをスレに書かないと誰も乗ってこないと思う
あと、変わったお題ならプチ盛り上ると思う
845デフォルトの名無しさん
2017/11/14(火) 20:39:19.62ID:yEmE0LhS 50B
a=[*2..1e3]
p a.each{|e|a.reject!{|v|v!=e&&v%e<1}}
a=[*2..1e3]
p a.each{|e|a.reject!{|v|v!=e&&v%e<1}}
846デフォルトの名無しさん
2017/11/14(火) 20:45:40.97ID:yEmE0LhS 47B 切りがないのでこれで終わりにする
p (a=*2..1e3).each{|e|a.reject!{|v|v>e&&v%e<1}}
p (a=*2..1e3).each{|e|a.reject!{|v|v>e&&v%e<1}}
847デフォルトの名無しさん
2017/11/14(火) 20:54:13.19ID:yEmE0LhS 45B これでほんとにラスト
p (a=*2..1e3).each{|e|a-=(2..31).map{|v|v*e}}
p (a=*2..1e3).each{|e|a-=(2..31).map{|v|v*e}}
848デフォルトの名無しさん
2017/11/14(火) 20:54:58.38ID:hugtgo3r おお流石さらっと回答が。ありがとうございます。俺のぼろ臭いエラトステネスもどきとは一味違いますね。
849デフォルトの名無しさん
2017/11/14(火) 21:04:49.82ID:yEmE0LhS ついでだがPrimeクラスを使ってもいいなら33B
#!ruby -rprime
p *Prime.each(1e3)
#!ruby -rprime
p *Prime.each(1e3)
850デフォルトの名無しさん
2017/11/15(水) 21:17:20.80ID:V8OOXL+L 「Rubyのpublic/private/protectedはaccess controlとしては壊れている」と言われたが、その答えは「確かに。access controlとして作ってないからな」というものであった。
851デフォルトの名無しさん
2017/11/15(水) 21:18:26.53ID:V8OOXL+L publicとprivateも壊れてるんですか?
852デフォルトの名無しさん
2017/11/15(水) 21:18:44.62ID:V8OOXL+L 「privateはsendとかでアクセスできるし、サブクラスからも見える」だそうです。確かにそうだ。publicは壊れていないと思いますけど、他2つが(access control として)壊れていたら、そもそも指定できる必要はないとは言えそう。
853デフォルトの名無しさん
2017/11/15(水) 21:55:17.62ID:PrGhGlG4 なんだこの自演
854デフォルトの名無しさん
2017/11/15(水) 22:31:56.17ID:V8OOXL+L 御大のtwitterの会話を貼り付けただけ
855デフォルトの名無しさん
2017/11/15(水) 22:32:21.95ID:V8OOXL+L すぐ自演とか頭悪ポw
856デフォルトの名無しさん
2017/11/16(木) 00:12:57.76ID:EjNhewu+ 自演と言うよりは
引用の仕方を知らないんだろうね
引用の仕方を知らないんだろうね
857デフォルトの名無しさん
2017/11/16(木) 06:47:18.22ID:0Chmg9DF この反応はやはり荒らしか
858デフォルトの名無しさん
2017/11/16(木) 14:52:27.31ID:L3BAWltd 自演失敗とな?
よし、晒し上げるか
よし、晒し上げるか
859デフォルトの名無しさん
2017/11/17(金) 21:40:30.22ID:+zjghEIw sliceで負数を指定したときの挙動の解釈が合ってるか教えてくれ
例えばnに12345って文字列があったとして
p n.slice(0,1)
p n.slice(-1,0)
ってやると1と5が出力される
つまり、絶対値が正数の負数が文字列の後ろから順々に対応してるって解釈で合ってる?
例えばnに12345って文字列があったとして
p n.slice(0,1)
p n.slice(-1,0)
ってやると1と5が出力される
つまり、絶対値が正数の負数が文字列の後ろから順々に対応してるって解釈で合ってる?
860デフォルトの名無しさん
2017/11/17(金) 21:56:30.56ID:IylgmQJ2 >>859
あってる
StringだけじゃなくてArrayでも同じ
ちなみに二つの整数値を与えるのではなく範囲で終わりを示す方法もよく使われる
p "12345".slice(1..-1) # => "2345" # 二つのピリオド
p "12345".slice(1...-1) # => "234" # 三つのピリオド
p "12345".slice(1..-2) # => "234"
p "12345".slice(1, -1) # => nil # 二つの引数
sliceだけじゃなくて[]でも同様に使う事ができる
あってる
StringだけじゃなくてArrayでも同じ
ちなみに二つの整数値を与えるのではなく範囲で終わりを示す方法もよく使われる
p "12345".slice(1..-1) # => "2345" # 二つのピリオド
p "12345".slice(1...-1) # => "234" # 三つのピリオド
p "12345".slice(1..-2) # => "234"
p "12345".slice(1, -1) # => nil # 二つの引数
sliceだけじゃなくて[]でも同様に使う事ができる
861デフォルトの名無しさん
2017/11/17(金) 21:57:12.32ID:5DUWZGJy (-6..6).each{|i|p n[i]}と試せばすぐにわかることをなぜ人に聞くのか
862デフォルトの名無しさん
2017/11/17(金) 21:58:54.04ID:5DUWZGJy というかp n.slice(-1,0)は""じゃないのか
863デフォルトの名無しさん
2017/11/17(金) 22:22:53.66ID:+zjghEIw864デフォルトの名無しさん
2017/11/17(金) 22:48:06.98ID:5DUWZGJy866デフォルトの名無しさん
2017/11/17(金) 23:17:48.28ID:g+LRYPuD イミュータブルの話していい?
記憶違いかもしれないけど、なんか将来のRubyでStringがイミュータブルになるって話だかを小耳にしたんだけど、どういうこと?
今のStringって書き換える操作に見えても実は別の生成したStringへ参照を換えているだけだで、
イミュータブルだと思ってたんだけど違うの?
記憶違いかもしれないけど、なんか将来のRubyでStringがイミュータブルになるって話だかを小耳にしたんだけど、どういうこと?
今のStringって書き換える操作に見えても実は別の生成したStringへ参照を換えているだけだで、
イミュータブルだと思ってたんだけど違うの?
867デフォルトの名無しさん
2017/11/17(金) 23:27:32.19ID:2lBbqhr3868デフォルトの名無しさん
2017/11/17(金) 23:33:09.94ID:urhgHz9b >>867
ソースプリーズ
ソースプリーズ
869デフォルトの名無しさん
2017/11/17(金) 23:44:19.35ID:fWRDFZO8 現実的に考えて、今のRuby界にPython3ショック並の非互換を乗り越える体力はない
そもそも3がリリースされる日が本当に来るのかは怪しいけど、もし出てもRails系には完全スルーじゃないかな
静的型もメタプログラミング全開のRailsに役立つようなものにはならないだろうし
そもそも3がリリースされる日が本当に来るのかは怪しいけど、もし出てもRails系には完全スルーじゃないかな
静的型もメタプログラミング全開のRailsに役立つようなものにはならないだろうし
870デフォルトの名無しさん
2017/11/17(金) 23:56:41.31ID:IylgmQJ2 >>866
今はリテラル文字列のオブジェクトが別だけど
ruby3になったらおなじオブジェクトになるって事
今のrubyでもコマンドラインオプションやソースコードのマジックコメントで挙動を確認できる
$ ruby24 -e '5.times{ p "abcdefg".object_id }' 17208605440
17208605280
17208605200
17208605120
17208605020
$ ruby24 --enable frozen-string-literal -e '5.times{ p "abcdefg".object_id }'
17208605640
17208605640
17208605640
17208605640
17208605640
rubyの実装レベルの話だと内部で共有文字列オブジェクトがcopy on writeされるようになってるだけ
ruby3になると共有文字列オブジェクトが直接表に出てくるってことになるんだろうね
今はリテラル文字列のオブジェクトが別だけど
ruby3になったらおなじオブジェクトになるって事
今のrubyでもコマンドラインオプションやソースコードのマジックコメントで挙動を確認できる
$ ruby24 -e '5.times{ p "abcdefg".object_id }' 17208605440
17208605280
17208605200
17208605120
17208605020
$ ruby24 --enable frozen-string-literal -e '5.times{ p "abcdefg".object_id }'
17208605640
17208605640
17208605640
17208605640
17208605640
rubyの実装レベルの話だと内部で共有文字列オブジェクトがcopy on writeされるようになってるだけ
ruby3になると共有文字列オブジェクトが直接表に出てくるってことになるんだろうね
871デフォルトの名無しさん
2017/11/18(土) 00:42:51.61ID:llwTwelI 一番の違いは文字がイミュータブルになるってことだろ
だからcopy on writeする必要もない
writeできないんだからcopyも不要
だからcopy on writeする必要もない
writeできないんだからcopyも不要
872デフォルトの名無しさん
2017/11/18(土) 00:49:48.52ID:sDELvJVN873デフォルトの名無しさん
2017/11/18(土) 00:50:21.77ID:18l+ABsp874デフォルトの名無しさん
2017/11/18(土) 00:55:46.00ID:pAjRC1cg ruby3にショックを起こしそうな変更が大してなさそうな所がショックなのではないだろうか
文字列といえば、SHARABLE_MIDDLE_SUBSTRINGはruby3で標準になるのか誰か知らんか
文字列といえば、SHARABLE_MIDDLE_SUBSTRINGはruby3で標準になるのか誰か知らんか
875デフォルトの名無しさん
2017/11/18(土) 01:01:26.66ID:sDELvJVN876デフォルトの名無しさん
2017/11/18(土) 02:23:57.54ID:v7CgBLN2 >C extension
詳細プリーズ
詳細プリーズ
877デフォルトの名無しさん
2017/11/18(土) 03:03:45.56ID:pAjRC1cg 文字列のデータがヌル終端文字列とは限らないので、char*取る時はStringValueCStr()使うとか
878デフォルトの名無しさん
2017/11/18(土) 04:44:28.98ID:LQXdQwI7 たのしいruby読みとおしたけどあんまたのしくない
879デフォルトの名無しさん
2017/11/18(土) 06:34:47.32ID:O/cG1rmo プログラミングが楽しいんであって
本で勉強するのが楽しいわけじゃないからな
本で勉強するのが楽しいわけじゃないからな
880デフォルトの名無しさん
2017/11/18(土) 16:31:16.15ID:6foiYhRZ 関数型言語 Elixir からの影響
文字列が、immutable なら、安全で効率的
文字列が、immutable なら、安全で効率的
881デフォルトの名無しさん
2017/11/18(土) 21:45:21.11ID:W95R0KgI >>866
Rubyで文字列をfreezeしまくるのが流行ってて
なんでかって、最適化のため
> http://d.hatena.ne.jp/ku-ma-me/20151004/p1
> 2 行目は 1 行目の 2 倍くらい速いです。
だもんで、freeze付けまくるっていう手動の最適化が蔓延していて
(二倍も速くなるならせざるを得ない)
なにかCとかアセンブラでシコシコ最適化していた90年代の香りがする
これもRubyが意味もなく遅すぎるのが原因で
主要言語と比べて30〜50倍ぐらい遅いので、3.0GHzの最新CPUで走らせても
実質60〜100MHzの激遅化石CPUで走らせていることになるので
まぁ90年代といわれれば、ちょうどそのあたりかもしれない
> https://qiita.com/sue738/items/6c312672cecd9e0400a2
あの頃はちょっとの速度差がクリティカルで、何か懐かしいね
Rubyはコンピュータに出来ることはコンピュータにやらせる主義なので
プログラマに手動の最適化を強いるし、型チェックもプログラマにやらせる
何か矛盾したことを言っているように思えるが
言語開発者の視点に立って、全力で手抜きして言語処理系を作ることを考えると
別に間違ったことは言ってない
幽遊白書風に言うと、仙水の言う「俺達七人」に君らは入ってないってことだな
Rubyで文字列をfreezeしまくるのが流行ってて
なんでかって、最適化のため
> http://d.hatena.ne.jp/ku-ma-me/20151004/p1
> 2 行目は 1 行目の 2 倍くらい速いです。
だもんで、freeze付けまくるっていう手動の最適化が蔓延していて
(二倍も速くなるならせざるを得ない)
なにかCとかアセンブラでシコシコ最適化していた90年代の香りがする
これもRubyが意味もなく遅すぎるのが原因で
主要言語と比べて30〜50倍ぐらい遅いので、3.0GHzの最新CPUで走らせても
実質60〜100MHzの激遅化石CPUで走らせていることになるので
まぁ90年代といわれれば、ちょうどそのあたりかもしれない
> https://qiita.com/sue738/items/6c312672cecd9e0400a2
あの頃はちょっとの速度差がクリティカルで、何か懐かしいね
Rubyはコンピュータに出来ることはコンピュータにやらせる主義なので
プログラマに手動の最適化を強いるし、型チェックもプログラマにやらせる
何か矛盾したことを言っているように思えるが
言語開発者の視点に立って、全力で手抜きして言語処理系を作ることを考えると
別に間違ったことは言ってない
幽遊白書風に言うと、仙水の言う「俺達七人」に君らは入ってないってことだな
882デフォルトの名無しさん
2017/11/18(土) 21:46:45.02ID:18l+ABsp また粘着君か
883デフォルトの名無しさん
2017/11/18(土) 22:36:14.71ID:fA1Yzd5Y 早くしたいなら言語変えろよ
JavaでもC#でもGoでもさ
JavaでもC#でもGoでもさ
884デフォルトの名無しさん
2017/11/18(土) 23:34:36.39ID:kadopebp 腕振り回すのが早いからって、野球選手にはなれないんだけどね。
885デフォルトの名無しさん
2017/11/18(土) 23:41:43.75ID:W95R0KgI 速度が必要なら他の言語を使え、と言いつつも
巷ではfreeze祭り開催中
(事実それが理由で3.0で検討されてるわけで)
やはりちょっとでも早くしたいというね
遅いといっても限度があるんだろうな
1.2倍とか1.5倍とかなら我慢できるが
30〜50倍は別次元というか、もはや別物
折角3.0GHzの最新CPUを使ってるのに
100MHz以下になるとはねトホホ
プログラムは遅くて困ることは有っても速くて困ることはないわけだが
遅くなった原因が、今となっては何のメリットもない動的型を採用したことと
コンパイラの最適化の手抜き、だからな
ちっとも利用者視点じゃなく、単に言語を作る側の手間の都合なわけだが
教祖様よろしく巧みに隠して言いくるめてきたが、もうウソがばれて限界ってところかな
巷ではfreeze祭り開催中
(事実それが理由で3.0で検討されてるわけで)
やはりちょっとでも早くしたいというね
遅いといっても限度があるんだろうな
1.2倍とか1.5倍とかなら我慢できるが
30〜50倍は別次元というか、もはや別物
折角3.0GHzの最新CPUを使ってるのに
100MHz以下になるとはねトホホ
プログラムは遅くて困ることは有っても速くて困ることはないわけだが
遅くなった原因が、今となっては何のメリットもない動的型を採用したことと
コンパイラの最適化の手抜き、だからな
ちっとも利用者視点じゃなく、単に言語を作る側の手間の都合なわけだが
教祖様よろしく巧みに隠して言いくるめてきたが、もうウソがばれて限界ってところかな
886デフォルトの名無しさん
2017/11/18(土) 23:56:34.49ID:W95R0KgI >腕振り回すのが早いからって、野球選手にはなれないんだけどね。
さすがに意味不明すぎて吹いた
他の主要言語は、腕振り回しているだけだとも?
随分だな
さすがに意味不明すぎて吹いた
他の主要言語は、腕振り回しているだけだとも?
随分だな
887デフォルトの名無しさん
2017/11/19(日) 00:08:39.46ID:ViJ+9/xP ちょっとどころか3倍速くしたいのがruby3だ
888デフォルトの名無しさん
2017/11/19(日) 00:09:28.92ID:ico5wL+/ >>885
じゃぁアセンブラ使っておけば?
じゃぁアセンブラ使っておけば?
889デフォルトの名無しさん
2017/11/19(日) 00:30:02.83ID:udvNJGPu 今やC/C++、Java、C#などの主要言語はコンパイラの最適化が鬼だから
常識的には人間がアセンブラで書くより速いわけ
だから書くなら
じゃぁC/C++、Java、C#使っておけば?
だし、言われるまでもなく世の中そうなってて
んーだから何?って感じなんだが
なんというか・・・
速度が速い代わりに使い勝手が悪い、だの
使い勝手が良い代わりに速度が遅い、だの
そういう厨が好みそうなマンガの設定みたいなトレードオフは発生してない
非常だわなぁ
では全てにおいてメリットが無い方式なら
いったい誰が作って、誰が支持するのかというと
これがなかなか北朝鮮のような国があったりもするので
存在していることだけを理由に正しいとは言えない
常識的には人間がアセンブラで書くより速いわけ
だから書くなら
じゃぁC/C++、Java、C#使っておけば?
だし、言われるまでもなく世の中そうなってて
んーだから何?って感じなんだが
なんというか・・・
速度が速い代わりに使い勝手が悪い、だの
使い勝手が良い代わりに速度が遅い、だの
そういう厨が好みそうなマンガの設定みたいなトレードオフは発生してない
非常だわなぁ
では全てにおいてメリットが無い方式なら
いったい誰が作って、誰が支持するのかというと
これがなかなか北朝鮮のような国があったりもするので
存在していることだけを理由に正しいとは言えない
890デフォルトの名無しさん
2017/11/19(日) 00:45:07.64ID:ico5wL+/ >>889
アホか?
C++がマジで使いやすくて速いとか思ってるなら、一回脳みそ洗濯機にかけた方がいいぞ?
C++は速さのために色々と犠牲にした言語だということを理解できないならエンジニアとして
致命的欠陥があると言わざるをえない
アホか?
C++がマジで使いやすくて速いとか思ってるなら、一回脳みそ洗濯機にかけた方がいいぞ?
C++は速さのために色々と犠牲にした言語だということを理解できないならエンジニアとして
致命的欠陥があると言わざるをえない
891デフォルトの名無しさん
2017/11/19(日) 00:50:56.77ID:ANnOsUYp Javaや.NETは起動時にコンパイルしてるから
実行速度ではなく起動速度が遅い
そしてRailsも起動が遅い。こっちは理由が少し
異なっていて動的型だからコンパイルが不要なんだが
読み込むファイルが多くなりすぎて起動速度が遅い
実行速度ではなく起動速度が遅い
そしてRailsも起動が遅い。こっちは理由が少し
異なっていて動的型だからコンパイルが不要なんだが
読み込むファイルが多くなりすぎて起動速度が遅い
892デフォルトの名無しさん
2017/11/19(日) 02:43:18.14ID:tAVjO9Xo いくら早くたってC++は複雑で読み書きしにくい
Rubyは実行速度より開発速度に振ってるから
Rubyは実行速度より開発速度に振ってるから
893デフォルトの名無しさん
2017/11/19(日) 04:19:06.14ID:/3rRHq6p894デフォルトの名無しさん
2017/11/19(日) 08:33:08.93ID:RgqRbH7C >>890
C++11以降はRubyよりはるかに使いやすい。
C++11以降はRubyよりはるかに使いやすい。
895デフォルトの名無しさん
2017/11/19(日) 08:55:34.34ID:kYPwLJsc スタートアップにはRailsが好まれるというのも眉唾だよな
ソースの量なんて最初のうちはすぐに増えるもんだし、事業が軌道に乗るまでは大きな変更も多いはず
とりあえず今手っ取り早く動くものを作りたいからという理由でRailsを選ぶような奴がテストなんか書いてるわけないし、
テストがないと変更が困難になるという動的型の性質がネックになるのは意外とすぐなんじゃないかという気がする
ソースの量なんて最初のうちはすぐに増えるもんだし、事業が軌道に乗るまでは大きな変更も多いはず
とりあえず今手っ取り早く動くものを作りたいからという理由でRailsを選ぶような奴がテストなんか書いてるわけないし、
テストがないと変更が困難になるという動的型の性質がネックになるのは意外とすぐなんじゃないかという気がする
896デフォルトの名無しさん
2017/11/19(日) 09:42:25.92ID:IcfiaN/i C#は「とても」書きやすいかといわれるとふんぬうううううって感じだ
書きやすいようにするモダンな構造はたくさん含まれてて文法未来も明るいが、全体としてはRubyのほうがまだいいと思う
今のところRubyよりいいなと思ってるのはKotlin+IntelliJ
Javaで書かなければいけない部分がもっと減れば書きやす四天王に入ると思うのでどんどんKotlin部分増やして欲しい
書きやすいようにするモダンな構造はたくさん含まれてて文法未来も明るいが、全体としてはRubyのほうがまだいいと思う
今のところRubyよりいいなと思ってるのはKotlin+IntelliJ
Javaで書かなければいけない部分がもっと減れば書きやす四天王に入ると思うのでどんどんKotlin部分増やして欲しい
897デフォルトの名無しさん
2017/11/19(日) 10:51:15.62ID:/3rRHq6p C#は、IDEのサポートが前提だからな。
898デフォルトの名無しさん
2017/11/19(日) 11:10:12.09ID:tAVjO9Xo >書きやす四天王
面白そうだからみんなで書いてみれば?
オレの場合書きやすいのはRuby一強で
二位以下はPythonとかLLが団子状態で並ぶけど
面白そうだからみんなで書いてみれば?
オレの場合書きやすいのはRuby一強で
二位以下はPythonとかLLが団子状態で並ぶけど
899デフォルトの名無しさん
2017/11/19(日) 11:42:50.02ID:udvNJGPu いや、洗脳されてる(というより確信犯←本来の意味でも誤用の意味でも)人の意見は
誰も興味ないというか常に無視されるというか
社民党が何か言っててもみんな聞き流してるわけで
大人な人達の言うところの民主主義というか
そもそも数に入ってないから無視してよいという暗黙の鬼畜現象
誰も興味ないというか常に無視されるというか
社民党が何か言っててもみんな聞き流してるわけで
大人な人達の言うところの民主主義というか
そもそも数に入ってないから無視してよいという暗黙の鬼畜現象
900デフォルトの名無しさん
2017/11/19(日) 12:15:25.95ID:ico5wL+/901デフォルトの名無しさん
2017/11/19(日) 12:24:31.26ID:lEYmgXHF 同じ事させるなら、「実行速度」がRubyより早い言語が有るのは当たり前。
Rubyは例えばCで書いた巨大ライブラリ・ツールとも言える訳だから。
Rubyは例えばCで書いた巨大ライブラリ・ツールとも言える訳だから。
902デフォルトの名無しさん
2017/11/19(日) 13:37:32.97ID:udvNJGPu ↑唐突になんだ?
903デフォルトの名無しさん
2017/11/19(日) 14:12:32.54ID:ojBPgPKj 話を変えるけど、
mswin32版のRuby2.4インスコして、今は懐かしきRDEで何か出来ないかハックしてんだけど普通に動くなコレ
動かない部分は、debug2から経由してrde.dllかrde.soを呼ぶデバッグ機能の辺りで、
バイナリについてきたこれらのファイルをロードできないのが原因だけど、
RDE1.1.1バイナリや1.0.1ソース拾えたんで何とかなりそう
mswin32版のRuby2.4インスコして、今は懐かしきRDEで何か出来ないかハックしてんだけど普通に動くなコレ
動かない部分は、debug2から経由してrde.dllかrde.soを呼ぶデバッグ機能の辺りで、
バイナリについてきたこれらのファイルをロードできないのが原因だけど、
RDE1.1.1バイナリや1.0.1ソース拾えたんで何とかなりそう
904デフォルトの名無しさん
2017/11/19(日) 14:26:48.86ID:GIoVTHnu RDEはすごく使いやすかったな
1.9や2.x以降も対応してくれるなら今でも使いたい
文字列コード関係とか問題ないの?
1.9や2.x以降も対応してくれるなら今でも使いたい
文字列コード関係とか問題ないの?
905デフォルトの名無しさん
2017/11/19(日) 15:34:37.97ID:ojBPgPKj >>904
特に問題ない
というかRubyの多言語化はCSI方式と呼ばれるもので、
ruby内部では種々の文字コードを認識せずバイナリとして扱い、指定した文字コード用のメソッドでバイナリに処理してるだけだから
マジックコメントでUTF-8指定して(2.x以降はデフォルトがUTF-8だから指定しなくても良い)、RDEもUTF8N指定しとけばOK
後、RDEについてるrde_export.rbみてたらちょっとした書き換えで2.4用の入力補完データを自動で出せるようになってる
RDEハック中だから、他にも聞きたいことあったら言ってくれ
特に問題ない
というかRubyの多言語化はCSI方式と呼ばれるもので、
ruby内部では種々の文字コードを認識せずバイナリとして扱い、指定した文字コード用のメソッドでバイナリに処理してるだけだから
マジックコメントでUTF-8指定して(2.x以降はデフォルトがUTF-8だから指定しなくても良い)、RDEもUTF8N指定しとけばOK
後、RDEについてるrde_export.rbみてたらちょっとした書き換えで2.4用の入力補完データを自動で出せるようになってる
RDEハック中だから、他にも聞きたいことあったら言ってくれ
906デフォルトの名無しさん
2017/11/19(日) 19:59:54.94ID:ojBPgPKj 問題は2.4用のrde.dllが無いことだからmswin32ruby1.8用のrde.dllをバイナリ改造して
msvcrt-ruby18.dllのロードをmsvcr100-ruby240.dllに書き換えて、
メソッドあわせれば楽に出来るんじゃないかと思いついたんだけど躓いた
msvcr100-ruby240.dllをPEviewで確認したらrb_str_new2が無いじゃないか
こういった内部に詳しい人、誰かいない?
msvcrt-ruby18.dllのロードをmsvcr100-ruby240.dllに書き換えて、
メソッドあわせれば楽に出来るんじゃないかと思いついたんだけど躓いた
msvcr100-ruby240.dllをPEviewで確認したらrb_str_new2が無いじゃないか
こういった内部に詳しい人、誰かいない?
907デフォルトの名無しさん
2017/11/19(日) 21:43:50.59ID:oda4btU4 日経Linux 11月号
Windows Subsystem for Linux (WSL) 特集。
ついに、ベータ版から正式版へ変わりました!
Docker の記事もある
Ubuntu 側では、Dockerデーモンが動かないため、
Windows 側の、VirtualBox に、Vagrant で、CoreOS を入れて、
その中に、Dockerデーモンをインストール
Ubuntu側から、Dockerコマンドで使う
付録は、サーバーがゼロから分かる本、100ページ。
サーバーでできること、77
付録DVD は、
Ubuntu 17.04 日本語 Remix (64 ビット版)
Ubuntu Server 17.04 (64 & 32 ビット版)
CentOS 7.3 LiveGNOME (64 ビット版)
Windows Subsystem for Linux (WSL) 特集。
ついに、ベータ版から正式版へ変わりました!
Docker の記事もある
Ubuntu 側では、Dockerデーモンが動かないため、
Windows 側の、VirtualBox に、Vagrant で、CoreOS を入れて、
その中に、Dockerデーモンをインストール
Ubuntu側から、Dockerコマンドで使う
付録は、サーバーがゼロから分かる本、100ページ。
サーバーでできること、77
付録DVD は、
Ubuntu 17.04 日本語 Remix (64 ビット版)
Ubuntu Server 17.04 (64 & 32 ビット版)
CentOS 7.3 LiveGNOME (64 ビット版)
908デフォルトの名無しさん
2017/11/19(日) 23:04:24.43ID:xn28G12Z mrubyをブラウザで実行するまで (WebAssembly) - Qiita
https://qiita.com/noontage/items/da846e78eebd1d3b2a78
https://qiita.com/noontage/items/da846e78eebd1d3b2a78
909デフォルトの名無しさん
2017/11/19(日) 23:16:02.85ID:wHgZOTEo >>906
外部シンボルの有無だけじゃなくstruct RStringとかRArray、RStructなんかは
要素数が少ない時にRObject内へと埋め込むようになってるし、
文字列オブジェクトとかは文字のエンコーディング情報を
抱えるようになってるしでまず無理
ソースコードを対応するrubyに合わせたパッチで当てて再ビルドした方がまだ近道だろうな
外部シンボルの有無だけじゃなくstruct RStringとかRArray、RStructなんかは
要素数が少ない時にRObject内へと埋め込むようになってるし、
文字列オブジェクトとかは文字のエンコーディング情報を
抱えるようになってるしでまず無理
ソースコードを対応するrubyに合わせたパッチで当てて再ビルドした方がまだ近道だろうな
910デフォルトの名無しさん
2017/11/20(月) 08:23:21.29ID:rLtj6AOb マジで?
ruby2.4(maswin32)いれたRDEのデバッグオプションを"-r debug2"から"-r debug"に書き換えると変数ウィンドウもデバッグも普通に問題なくうごくけど、
変数ウィンドウのオブジェクト表示タブで、一部オブジェクトの型が表示されず"(1)"表記されるのはそれが理由か
それと、rde.dlやrde.soをいれなくても、出来るってことは変数ウィンドウ辺りはRDE本体の機能かな?
これら機能が"debug"や"debug2"にどこまで依存してるのかいまいち分らない
ぱっとみrde.dlやrde.soだけruby2.4(mswin32)に対応したのをコンパイルすれば解決かと思ってたけど、
とりあえず、
SourceForgeやOSDNから拾ってこれるrde 0.9.9.0のソース(1.0.1はソースじゃなくバイナリだった、ごめん。一番新しいソースは0.9.9.0になる)をもう少し見てみるよ
現時点でもデバッグオプションを"-r debug2"から"-r debug"に書き換えればまともに動くんだからそれほど不都合は無いんだけど
ruby2.4(maswin32)いれたRDEのデバッグオプションを"-r debug2"から"-r debug"に書き換えると変数ウィンドウもデバッグも普通に問題なくうごくけど、
変数ウィンドウのオブジェクト表示タブで、一部オブジェクトの型が表示されず"(1)"表記されるのはそれが理由か
それと、rde.dlやrde.soをいれなくても、出来るってことは変数ウィンドウ辺りはRDE本体の機能かな?
これら機能が"debug"や"debug2"にどこまで依存してるのかいまいち分らない
ぱっとみrde.dlやrde.soだけruby2.4(mswin32)に対応したのをコンパイルすれば解決かと思ってたけど、
とりあえず、
SourceForgeやOSDNから拾ってこれるrde 0.9.9.0のソース(1.0.1はソースじゃなくバイナリだった、ごめん。一番新しいソースは0.9.9.0になる)をもう少し見てみるよ
現時点でもデバッグオプションを"-r debug2"から"-r debug"に書き換えればまともに動くんだからそれほど不都合は無いんだけど
911デフォルトの名無しさん
2017/11/20(月) 09:56:40.05ID:E4Z6XoUc RDEってwin7や8、10でも動くの?
912デフォルトの名無しさん
2017/11/20(月) 12:04:09.60ID:ohy70QIE RDE自体書き換えて再ビルドすりゃいいじゃん
ソース何で作ってあんのよ
……Delphiか…
すばらしい言語とすばらしい仕様とすばらしくない会社に翻弄された不遇の子か…
ほかのIDEのアドオンとかに注力したほうがいい…?
ソース何で作ってあんのよ
……Delphiか…
すばらしい言語とすばらしい仕様とすばらしくない会社に翻弄された不遇の子か…
ほかのIDEのアドオンとかに注力したほうがいい…?
913デフォルトの名無しさん
2017/11/20(月) 12:10:43.25ID:m3rw4xgt Delphiは打たれる
914デフォルトの名無しさん
2017/11/22(水) 22:47:26.40ID:Iq8RJWyk RDEもどきはGUI周りはGTKとかQtを使うにしても
基本的にRubyだけで再実装できないものなのかな?
基本的にRubyだけで再実装できないものなのかな?
915デフォルトの名無しさん
2017/11/22(水) 23:21:49.21ID:ITKojXQF 観念してVSCodeを使おう
TypeScript製なのでRubyistにとっては敵のケツを舐めることになる屈辱的なエディタだけど、他のを使う理由が見つからないレベルの出来
TypeScript製なのでRubyistにとっては敵のケツを舐めることになる屈辱的なエディタだけど、他のを使う理由が見つからないレベルの出来
916デフォルトの名無しさん
2017/11/22(水) 23:29:38.25ID:5on9dylu RDEってさして知らないんだけどemacsじゃあかんの?
917デフォルトの名無しさん
2017/11/22(水) 23:33:30.62ID:S4KAr5dn irbでコードを直接打ち込むとちゃんと動作するんだけどそれと全く同じコードをメソッドとして定義してそれを実行するとできないのなんでよ
918デフォルトの名無しさん
2017/11/22(水) 23:53:50.99ID:5on9dylu >>917
コード書かないで他人がわかるとでも?
コード書かないで他人がわかるとでも?
919デフォルトの名無しさん
2017/11/23(木) 00:00:05.02ID:Nvdrrync >>918
def binsort(a)
bin = []
(a.max+1).times do |i|
bin.push(a.count(i))
end
a = []
bin.length.times do |k|
bin[k].times do
a.push(k)
end
end
end
aは整数値の配列
この中身をirbで直接実行するとちゃんとソートしてくれるんだけどbinsort(a)で実行すると何もしてくれないのよ
def binsort(a)
bin = []
(a.max+1).times do |i|
bin.push(a.count(i))
end
a = []
bin.length.times do |k|
bin[k].times do
a.push(k)
end
end
end
aは整数値の配列
この中身をirbで直接実行するとちゃんとソートしてくれるんだけどbinsort(a)で実行すると何もしてくれないのよ
920デフォルトの名無しさん
2017/11/23(木) 00:06:20.01ID:Q47DTjos irbでもソートされないんだけど?
ちゃんと戻り値使いましょうね
def binsort(a)
bin = []
(a.max+1).times do |i|
bin.push(a.count(i))
end
ary = []
bin.length.times do |k|
bin[k].times do
ary.push(k)
end
end
ary # ←これ
end
ちゃんと戻り値使いましょうね
def binsort(a)
bin = []
(a.max+1).times do |i|
bin.push(a.count(i))
end
ary = []
bin.length.times do |k|
bin[k].times do
ary.push(k)
end
end
ary # ←これ
end
921デフォルトの名無しさん
2017/11/23(木) 00:08:55.64ID:Nvdrrync うちのirbだとさっきのでちゃんとソートされたんだが
922デフォルトの名無しさん
2017/11/23(木) 00:14:07.25ID:Q47DTjos 殆どのバージョンで試したけどそのようにはなりませんでした
君の実行環境を書いてください
君の実行環境を書いてください
923デフォルトの名無しさん
2017/11/23(木) 00:21:12.86ID:Nvdrrync a=Array.new(100) do rand(5) end
とかでaを決めてさっきのコードをirbで実行
それでもう一度aを表示するとソートされた配列が表示されるけど、binsort(a)でやってaを表示するとaそのものは変わってないって状況
だったんだけど
a=[]
のとこを
a.slice!(0..-1)
にしてやったらa自体を変えられた
とかでaを決めてさっきのコードをirbで実行
それでもう一度aを表示するとソートされた配列が表示されるけど、binsort(a)でやってaを表示するとaそのものは変わってないって状況
だったんだけど
a=[]
のとこを
a.slice!(0..-1)
にしてやったらa自体を変えられた
924デフォルトの名無しさん
2017/11/23(木) 00:33:11.45ID:Q47DTjos へーよかったね
925デフォルトの名無しさん
2017/11/23(木) 00:39:33.47ID:BeZbsl9b 日本語として何が言いたいのかさっぱりわからん
同じアルゴリズムなら俺ならこう書く
def binsort(a)
(0..a.max).inject([]){|s, i| s + [i]*a.count(i)}
end
同じアルゴリズムなら俺ならこう書く
def binsort(a)
(0..a.max).inject([]){|s, i| s + [i]*a.count(i)}
end
926デフォルトの名無しさん
2017/11/23(木) 03:06:34.20ID:AxcPEcxT これは多分あれだな
実引数aを表示してると思ってるけど実は仮引数aを表示しているパターン
実引数aを表示してると思ってるけど実は仮引数aを表示しているパターン
927デフォルトの名無しさん
2017/11/23(木) 08:53:22.23ID:XBDj7YCq >>915
朝鮮脳かー。
朝鮮脳かー。
928デフォルトの名無しさん
2017/11/23(木) 11:03:40.27ID:AMXsylzt Ruby書くのにVSCode使ってるわ
Ruby陣営にとっては多少アウェイなのかもしれんが
使いやすければどうでもいい
Ruby陣営にとっては多少アウェイなのかもしれんが
使いやすければどうでもいい
929デフォルトの名無しさん
2017/11/23(木) 11:43:03.92ID:tA8CL5L/930デフォルトの名無しさん
2017/11/23(木) 12:30:20.24ID:UCxNEg1Y 現在のプログラマーにとって
統合開発環境使わないのであれば
VSCodeは王道だろう。
秀丸とか使っているならアウェイだろうけど
統合開発環境使わないのであれば
VSCodeは王道だろう。
秀丸とか使っているならアウェイだろうけど
931デフォルトの名無しさん
2017/11/23(木) 13:33:37.41ID:DqyU4UwD VSCodeは使用する言語のためにゴリゴリに整えられたemacs的な環境がクソ簡単に作れるのが強いよね
エディタの設定にアホみたいに手間かけてドヤ顔してた奴等がただの老害になってしまった
さすがに30年近く開発環境作ってるだけのことはあるわ
エディタの設定にアホみたいに手間かけてドヤ顔してた奴等がただの老害になってしまった
さすがに30年近く開発環境作ってるだけのことはあるわ
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- パラドゲーやってる人に聞きたい総理の発言がそのまま国家意思になるって中世かよ [279479878]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- 俺が「う~寒い寒い」って言いながらお前らが寝てるお布団に潜り込んだら…
