プログラミング言語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
レス数が1000を超えています。これ以上書き込みはできません。
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
2017/08/25(金) 16:05:20.69ID:0nrK3Ckt
大規模障害記念
2017/08/25(金) 16:05:48.85ID:HsL9LVKJ
たのしいRuby 第5版、2016
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
リファクタリング:Rubyエディション、2010
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
リファクタリング:Rubyエディション、2010
2017/08/25(金) 16:10:23.56ID:HsL9LVKJ
ギリセーフで間に合った
2017/08/25(金) 16:11:37.65ID:sLUvaIRs
6デフォルトの名無しさん
2017/08/25(金) 16:12:33.08ID:BwHFndLq each_with_object
なんて初めて見た。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
p b # => [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
なんて初めて見た。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
p b # => [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
7デフォルトの名無しさん
2017/08/25(金) 16:18:41.59ID:BwHFndLq evens = (1..10).each_with_object([]) {|i, a| a << i*2 }
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
each_with_objectってのは引数一個(空の配列)とブロックを取るみたい。
ブロックには、引数が2つ渡り、最初は、列挙される要素、2番目は引数(空の配列)が渡るらしい。
ブロックの戻値がeach_with_objectの戻値かな?
# => [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
each_with_objectってのは引数一個(空の配列)とブロックを取るみたい。
ブロックには、引数が2つ渡り、最初は、列挙される要素、2番目は引数(空の配列)が渡るらしい。
ブロックの戻値がeach_with_objectの戻値かな?
8デフォルトの名無しさん
2017/08/25(金) 16:25:39.04ID:BwHFndLq a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
p a
a.each{|(x, y)| puts "x = " + x.to_s + "y = " + y.to_s}
このtupleみたいな(x, y)ってのは何だ?
Rubyにtupleがあるのか?
p a
a.each{|(x, y)| puts "x = " + x.to_s + "y = " + y.to_s}
このtupleみたいな(x, y)ってのは何だ?
Rubyにtupleがあるのか?
2017/08/25(金) 16:26:35.62ID:4MOWRfGQ
ブロック中での最後の評価値、じゃないのがこれの使い易いところ
戻り値には、each_with_object(ここのオブジェクト)を返す
injectでやろうとして
b = a.inject([[],[]]) {|acc, (x, y)| acc[0] << x; acc[1] << (y || x); acc}
ブロックの最後でこうやってaccを返そうとして頑張っちゃうような時には考えたい
戻り値には、each_with_object(ここのオブジェクト)を返す
injectでやろうとして
b = a.inject([[],[]]) {|acc, (x, y)| acc[0] << x; acc[1] << (y || x); acc}
ブロックの最後でこうやってaccを返そうとして頑張っちゃうような時には考えたい
10デフォルトの名無しさん
2017/08/25(金) 16:30:33.90ID:BwHFndLq よく判らんが、要素2個の配列をブロックの引数で(x, y)って受け取れば、
2個の要素はx,yとして受け取れるらしい。
2個の要素はx,yとして受け取れるらしい。
11前スレ996
2017/08/25(金) 16:55:24.12ID:sLUvaIRs aの配列の個数が変わる場合があるので、とりあえず以下のようにしてみたのですがrslt1とrslt2で結果が異なるのは何故ですか?
tobj==[[],[]]はtrueと出ます。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
tobj==[[],[]]はtrueと出ます。
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary|; tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
12前スレ996
2017/08/25(金) 17:00:35.79ID:sLUvaIRs すみません。上のは不要なセミコロンが入っていました。(動作は問題ないみたいですが)
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
p rslt1,rslt2
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
tobj=[[]]*2
rslt1 = a.each_with_object([[],[]]) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
rslt2 = a.each_with_object(tobj) {|x,tary| tary.each_with_index{|n,i| x.instance_of?(Array) ? tary[i]<<x[i] : tary[i]<<x}}
p rslt1,rslt2
2017/08/25(金) 17:06:01.66ID:W3qddKKH
Rubyの初め方
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン
↓
リファクタリングRubyエディション
Rubyのしくみ。
ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン
↓
リファクタリングRubyエディション
Rubyのしくみ。
ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
14デフォルトの名無しさん
2017/08/25(金) 17:51:40.95ID:HsL9LVKJ リファクタリングRubyエディション
Rubyのしくみ
このふたつは必読
Rubyのしくみ
このふたつは必読
2017/08/25(金) 18:32:17.61ID:w/d6Mddl
>>前スレ989
それ継承でなくて上書きがダメって言ってるだけじゃん
Objectクラス継承しちゃうんだからもうオブジェクト指向言語使うのやめなよ
それ継承でなくて上書きがダメって言ってるだけじゃん
Objectクラス継承しちゃうんだからもうオブジェクト指向言語使うのやめなよ
2017/08/25(金) 18:48:50.81ID:W3qddKKH
>>13
最初からwebアプリ(Rails)を作りたい人は
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
パーフェクトRubyonRails
達人に学ぶ SQL徹底指南書
達人に学ぶ DB設計徹底指南書
SQLアンチパターン
テスト駆動開発をやりたい人は
Railsチュートリアル
はじめて学ぶソフトウェアテスト技法
Everyday Rails - RSpecによるRailsテスト入門
最初からwebアプリ(Rails)を作りたい人は
ルビィの冒険
↓
たのしいRuby、初めてのRuby
↓
パーフェクトRuby
↓
パーフェクトRubyonRails
達人に学ぶ SQL徹底指南書
達人に学ぶ DB設計徹底指南書
SQLアンチパターン
テスト駆動開発をやりたい人は
Railsチュートリアル
はじめて学ぶソフトウェアテスト技法
Everyday Rails - RSpecによるRailsテスト入門
2017/08/25(金) 19:18:38.80ID:3NyVHrhs
>>12
そりゃあんた2次元配列の初期化の基本でしょ。
tobj[0].object_id == tobj[1].object_id なんだから。
tobj = Array.new(2).map([]) とでもしないと。
そりゃあんた2次元配列の初期化の基本でしょ。
tobj[0].object_id == tobj[1].object_id なんだから。
tobj = Array.new(2).map([]) とでもしないと。
2017/08/25(金) 19:25:54.88ID:3NyVHrhs
2017/08/25(金) 19:27:54.09ID:UfR6nGBm
Rubyに多次元配列は存在しない
とかいう例のアレにも通じるアレだな
Array#*は単純にレシーバを引数回繰り返した結果を返す(値は複製しない)
複製しないってことは同じ配列がいくつも繰り返されるだけだ
つまり [[]]*2 と [[],[]] は違う
とかいう例のアレにも通じるアレだな
Array#*は単純にレシーバを引数回繰り返した結果を返す(値は複製しない)
複製しないってことは同じ配列がいくつも繰り返されるだけだ
つまり [[]]*2 と [[],[]] は違う
2017/08/25(金) 20:37:35.28ID:rKeka8MH
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
a.map {|e| [[e].flatten[0], [e].flatten[-1]] }.transpose
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
a.map {|e| [[e].flatten[0], [e].flatten[-1]] }.transpose
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
21デフォルトの名無しさん
2017/08/25(金) 21:01:41.73ID:rKeka8MH [a.map {|(e)| e }, a.map {|(*,e)| e }]
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
2017/08/25(金) 21:09:45.04ID:rKeka8MH
[a.map {|(e,*)| e }, a.map {|(*,e)| e }]
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
こっちのほうがきれい >>21は撤回で
=> [[1, 3, 4, 5, 6, 8, 9, 11, 13], [2, 3, 4, 5, 7, 8, 10, 12, 14]]
こっちのほうがきれい >>21は撤回で
2017/08/25(金) 21:31:15.78ID:SZeQgZta
カッコ要らないよ
[a.map {|e,*| e }, a.map {|*,e| e }]
[a.map {|e,*| e }, a.map {|*,e| e }]
2017/08/25(金) 21:58:40.29ID:rKeka8MH
>>23
恐縮です
恐縮です
2017/08/25(金) 22:46:54.39ID:teISJdbp
>>10
メソッドやブロックの引数の受け取り方は多重代入と似た挙動になってるから
入れ子になった配列も展開して変数に受け取ることもできる
def test(a, (b, (c, d)))
……
end
test 1, [2, [3, 4]]
メソッドやブロックの引数の受け取り方は多重代入と似た挙動になってるから
入れ子になった配列も展開して変数に受け取ることもできる
def test(a, (b, (c, d)))
……
end
test 1, [2, [3, 4]]
2017/08/25(金) 22:56:33.15ID:UfR6nGBm
コードゴルフ(もどき)はあまり好ましいことではないように思える
初心者スレであるから特に
splat*を書いてしまったら立ち止まるべきかと
初心者スレであるから特に
splat*を書いてしまったら立ち止まるべきかと
2017/08/26(土) 00:10:52.42ID:azDqTcfP
>>10
Destructuringだね
多重代入は括弧により、ネストした配列の要素を代入することもできます。
https://docs.ruby-lang.org/ja/2.4.0/doc/spec=2foperator.html#multiassign
http://tony.pitluga.com/2011/08/08/destructuring-with-ruby.html
Destructuringだね
多重代入は括弧により、ネストした配列の要素を代入することもできます。
https://docs.ruby-lang.org/ja/2.4.0/doc/spec=2foperator.html#multiassign
http://tony.pitluga.com/2011/08/08/destructuring-with-ruby.html
2017/08/26(土) 00:16:16.83ID:Q9D9720h
うむ
尤もだ
尤もだ
29デフォルトの名無しさん
2017/08/26(土) 00:18:15.51ID:6TCzEPsc >>26
好ましくないが、楽しいので初心者向き。
好ましくないが、楽しいので初心者向き。
30デフォルトの名無しさん
2017/08/26(土) 00:23:16.07ID:6TCzEPsc2017/08/26(土) 00:30:44.39ID:Q9D9720h
>>27
上のリンク先の多重代入の説明間違ってるな
上のリンク先の多重代入の説明間違ってるな
2017/08/26(土) 00:31:33.66ID:GUwpgiyr
カンマで区切る代入はRubyの魔境のひとつなので半端に深入りするのも半端に慣れるのも事故のもとだからやめといたほうがいいかも
33デフォルトの名無しさん
2017/08/26(土) 01:28:41.95ID:8HsFh7FA 多重代入でもハッシュが使えればなーって思うことがたまにある
(x:, y: 1, z: 1.5) = { x: -1 }
(x:, y: 1, z: 1.5) = { x: -1 }
2017/08/26(土) 01:33:58.36ID:N4fvc+FV
式の評価の順番がわけわかめになるのでやめちくり><
2017/08/26(土) 01:44:30.12ID:azDqTcfP
36デフォルトの名無しさん
2017/08/26(土) 07:51:03.88ID:6TCzEPsc >>32
ホントだ。魔境だ。変な仕様だ。
多重代入は括弧により、ネストした配列の要素を代入することもできます。
(foo, bar), baz = [1, 2], 3 # foo = 1; bar = 2; baz = 3
ホントだ。魔境だ。変な仕様だ。
多重代入は括弧により、ネストした配列の要素を代入することもできます。
(foo, bar), baz = [1, 2], 3 # foo = 1; bar = 2; baz = 3
37デフォルトの名無しさん
2017/08/26(土) 07:53:51.24ID:6TCzEPsc そういえばMatz自身が魔境だと言う動画を見たことある。
Matz 多重代入 で検索。
$変数も魔境だ。C言語の関数ポインタの宣言の読み方も魔境だ。
SwiftのStringも魔境だ。
おっと、失礼!
Matz 多重代入 で検索。
$変数も魔境だ。C言語の関数ポインタの宣言の読み方も魔境だ。
SwiftのStringも魔境だ。
おっと、失礼!
38デフォルトの名無しさん
2017/08/26(土) 08:14:32.01ID:6TCzEPsc 多重代入、trickyすぎる。
files = ['Gemfile', 'LICENSE.txt', 'README.md', 'Rakefile', 'bin', 'lib', 'maliq.gemspec', 'pkg', 'spec']
多重代入+括弧で解決します。
(gemspec, *_), files = files.partition { |f| f.match(/¥.gemspec$/) }
gemspec # => "maliq.gemspec"
files # => ["Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin", "lib", "pkg", "spec"]
files = ['Gemfile', 'LICENSE.txt', 'README.md', 'Rakefile', 'bin', 'lib', 'maliq.gemspec', 'pkg', 'spec']
多重代入+括弧で解決します。
(gemspec, *_), files = files.partition { |f| f.match(/¥.gemspec$/) }
gemspec # => "maliq.gemspec"
files # => ["Gemfile", "LICENSE.txt", "README.md", "Rakefile", "bin", "lib", "pkg", "spec"]
39デフォルトの名無しさん
2017/08/26(土) 13:07:20.00ID:6TCzEPsc2017/08/26(土) 18:34:53.74ID:8HsFh7FA
>>35
それだとその後に
x, y, z = hash[:x], hash[:y], hash[:z]
ってやるか
x, y, z = hash.values_at(:x, :y, :z)
ってやった上に必須キー・不正なキーの確認処理が必要になるじゃない
((x1:, y1:, color1: 0xffffffff), (x2:, y2:, color2: 0x00ffffff)) = obj
みたいに配列中のハッシュも多重代入で済ませられたらなってのが動機
……新しい魔境ができそう
それだとその後に
x, y, z = hash[:x], hash[:y], hash[:z]
ってやるか
x, y, z = hash.values_at(:x, :y, :z)
ってやった上に必須キー・不正なキーの確認処理が必要になるじゃない
((x1:, y1:, color1: 0xffffffff), (x2:, y2:, color2: 0x00ffffff)) = obj
みたいに配列中のハッシュも多重代入で済ませられたらなってのが動機
……新しい魔境ができそう
2017/08/26(土) 20:25:10.89ID:Q9D9720h
長年の謎だったがアスタリスクのことをスプラットとも言うのか
2017/08/26(土) 20:31:00.33ID:0rCQx/Jc
いやアスタリスクはアスタリスクだよ
引数展開をsplatと呼ぶ
それに使われるときの演算子だからsplat
引数展開をsplatと呼ぶ
それに使われるときの演算子だからsplat
2017/08/26(土) 20:48:19.79ID:azDqTcfP
>>40
うん、すまんが何を実現したいか理解できんかった
うん、すまんが何を実現したいか理解できんかった
44デフォルトの名無しさん
2017/08/26(土) 21:22:20.08ID:6TCzEPsc45デフォルトの名無しさん
2017/08/26(土) 21:32:43.71ID:CwpB94hG >>32,36
魔境?、よくわからんけど ML や Haskell といったモダンな関数型言語にある
タプルのパターンマッチングをRubyが部分的に導入した(パクった)だけでは?
たとえば SML(Standard ML) だと、以下は魔境でも魔術でもなんでもなく
単なるパターンマッチングの初歩でしかない
- val ((x, y), z) = ((1, 2), 3); (* 先頭の ‘-‘ はSML/NJのプロンプト *)
val x = 1 : int (* 以下はSML/NJ の応答 *)
val y = 2 : int
val z = 3 : int
少なくとも、これをSMLの世界で魔境やら多重代入と呼ぶ人は存在しない
君たちを見ていると、何やら未開の土人がテレビという文明に接して、
それを魔境の道具などと謎に満ちた深淵な事象に認識してしまう映像を思い出す
魔境?、よくわからんけど ML や Haskell といったモダンな関数型言語にある
タプルのパターンマッチングをRubyが部分的に導入した(パクった)だけでは?
たとえば SML(Standard ML) だと、以下は魔境でも魔術でもなんでもなく
単なるパターンマッチングの初歩でしかない
- val ((x, y), z) = ((1, 2), 3); (* 先頭の ‘-‘ はSML/NJのプロンプト *)
val x = 1 : int (* 以下はSML/NJ の応答 *)
val y = 2 : int
val z = 3 : int
少なくとも、これをSMLの世界で魔境やら多重代入と呼ぶ人は存在しない
君たちを見ていると、何やら未開の土人がテレビという文明に接して、
それを魔境の道具などと謎に満ちた深淵な事象に認識してしまう映像を思い出す
2017/08/26(土) 21:42:19.80ID:0rCQx/Jc
ただの変数リテラル代入を魔境と呼んでる人はいないと思う
2017/08/26(土) 22:03:00.31ID:zlhz7EzI
Prologなんか言語自体が
パターンマッチングで動作してて
全部魔境だからな
パターンマッチングで動作してて
全部魔境だからな
48デフォルトの名無しさん
2017/08/26(土) 22:03:41.96ID:CwpB94hG >>46
モダンな関数型言語のパターンマッチングが単なる変数への代入に限定されると
思い込んでるってことは、君も彼らと同じく未開の土人なんだろな
そんなのネットで調べればすぐにわかることなのに気の毒な
モダンな関数型言語のパターンマッチングが単なる変数への代入に限定されると
思い込んでるってことは、君も彼らと同じく未開の土人なんだろな
そんなのネットで調べればすぐにわかることなのに気の毒な
49デフォルトの名無しさん
2017/08/26(土) 22:26:45.42ID:CwpB94hG >>47
Prolog だと>>45の例は以下のようになる
?- ((X, Y), Z) = ((1, 2), 3). % 先頭の ‘?-‘ は SWI-Prolog のプロンプト
X = 1, % 以下は SWI-Prolog の応答
Y = 2,
Z = 3.
なお ML や Haskell といった関数型言語(および Ruby)のパターンマッチングは
変数と値の代入に限定されるけど、Prolog では変数と変数のマッチも許容され、
それを単一化(ユニフィケーション)と呼び、論理型言語の特質の一つになっている
まあそれを魔境と捉えるのはその人しだいだし、確かに初対面では魔境にしか
見えないのも仕方ないのかもしれない
でも自分にとっては、Lisp の caadr やら cadar やらに嫌気がさしていたから、
なんて(人に)優しい構文なんだと Prolog に入れ込む理由の
大きな要因の一つになっていた
同じく、Ruby のケースも導入されたのは 1.8 の頃だと思うけど、
自分はそれを肯定的に捉えている
Prolog だと>>45の例は以下のようになる
?- ((X, Y), Z) = ((1, 2), 3). % 先頭の ‘?-‘ は SWI-Prolog のプロンプト
X = 1, % 以下は SWI-Prolog の応答
Y = 2,
Z = 3.
なお ML や Haskell といった関数型言語(および Ruby)のパターンマッチングは
変数と値の代入に限定されるけど、Prolog では変数と変数のマッチも許容され、
それを単一化(ユニフィケーション)と呼び、論理型言語の特質の一つになっている
まあそれを魔境と捉えるのはその人しだいだし、確かに初対面では魔境にしか
見えないのも仕方ないのかもしれない
でも自分にとっては、Lisp の caadr やら cadar やらに嫌気がさしていたから、
なんて(人に)優しい構文なんだと Prolog に入れ込む理由の
大きな要因の一つになっていた
同じく、Ruby のケースも導入されたのは 1.8 の頃だと思うけど、
自分はそれを肯定的に捉えている
2017/08/26(土) 22:33:08.15ID:MD6b0JEZ
パターンマッチングを参考に取り入れたはいいけど、つまみ食い的に取り入れたために
きちんとした仕様を策定できなくて魔境になっちゃった
…という感じでは?
きちんとした仕様を策定できなくて魔境になっちゃった
…という感じでは?
2017/08/26(土) 22:33:22.56ID:0rCQx/Jc
いつもの人だから返事しないでおく
2017/08/26(土) 22:33:49.77ID:azDqTcfP
>>45
パターンマッチングと多重代入は別もの
destructuringとかunpackingする部分が共通してるだけ
MLはしらんけどHaskell含めて関数型言語には
基本的に多重代入って考え方がないからそう呼ばないだけだと思うよ
パターンマッチングと多重代入は別もの
destructuringとかunpackingする部分が共通してるだけ
MLはしらんけどHaskell含めて関数型言語には
基本的に多重代入って考え方がないからそう呼ばないだけだと思うよ
2017/08/26(土) 22:35:01.43ID:r2wyjps1
2017/08/26(土) 22:36:22.65ID:r2wyjps1
2017/08/26(土) 22:37:22.86ID:MD6b0JEZ
魔境ってのも、仕様的魔境なのか、実装的魔境なのか、その辺があいまいだよねー
2017/08/26(土) 22:39:13.12ID:gwXj5lMG
57デフォルトの名無しさん
2017/08/26(土) 22:58:24.74ID:CwpB94hG >>53
どうやら >>46 のお仲間みたいですね、しかたないから具体的なコードで
Ruby の場合:
$ irb
irb(main):001:0> [[1,2], [3, 4], [5, 6]].map { |(x, y)| x + y }
=> [3, 7, 11]
SMLの場合:
$ sml
Standard ML of New Jersey v110.79 [built: Sun Oct 4 14:45:06 2015]
- map (fn (x, y) => x + y) [(1, 2), (3, 4), (5, 6)];
val it = [3,7,11] : int list
Ruby のメソッド Enumerable#map の引数であるブロックに相当する
SML の構文 が “fn” <pat> => <expr> になる
>>45 の代入の構文は “val” <pat> = <expr> でしかない
さらに具体的なコードをお求めなら、以下を読んで:
関数型プログラミングにおけるクイックソート・アルゴリズムの実装
http://www.h6.dion.ne.jp/~machan/misc/qsort-in-fp.html
どうやら >>46 のお仲間みたいですね、しかたないから具体的なコードで
Ruby の場合:
$ irb
irb(main):001:0> [[1,2], [3, 4], [5, 6]].map { |(x, y)| x + y }
=> [3, 7, 11]
SMLの場合:
$ sml
Standard ML of New Jersey v110.79 [built: Sun Oct 4 14:45:06 2015]
- map (fn (x, y) => x + y) [(1, 2), (3, 4), (5, 6)];
val it = [3,7,11] : int list
Ruby のメソッド Enumerable#map の引数であるブロックに相当する
SML の構文 が “fn” <pat> => <expr> になる
>>45 の代入の構文は “val” <pat> = <expr> でしかない
さらに具体的なコードをお求めなら、以下を読んで:
関数型プログラミングにおけるクイックソート・アルゴリズムの実装
http://www.h6.dion.ne.jp/~machan/misc/qsort-in-fp.html
58デフォルトの名無しさん
2017/08/26(土) 23:09:14.73ID:CwpB94hG >>56
直感的に言えば、単一化の概念はそれで合ってる(左辺と右辺を同等に扱う)
そして Prolog に代表される論理型言語では、変数とは未知の存在を表し、
単一化により未知を未知のまま扱う(=計算する)ことができる
それは、人間の持つ自然な「等しい」という高度で抽象的な概念により近いはず
これ以上はスレ違いになるから、続きは Prolog スレで
直感的に言えば、単一化の概念はそれで合ってる(左辺と右辺を同等に扱う)
そして Prolog に代表される論理型言語では、変数とは未知の存在を表し、
単一化により未知を未知のまま扱う(=計算する)ことができる
それは、人間の持つ自然な「等しい」という高度で抽象的な概念により近いはず
これ以上はスレ違いになるから、続きは Prolog スレで
2017/08/27(日) 00:07:15.35ID:b/YM8B/u
a,=[1,2,3]
こういうのがキモい。
そうしたいときはあえて(a,)とカッコをつけて書くようにしてる。
こういうのがキモい。
そうしたいときはあえて(a,)とカッコをつけて書くようにしてる。
2017/08/27(日) 01:23:32.91ID:1JS8bjMA
2017/08/27(日) 03:30:57.21ID:dsz1YMQy
Ruby, JS スレには、関数厨が、わんさか湧いてくるw
魔境に、片足を突っ込んでる、言語だからかな?w
魔境に、片足を突っ込んでる、言語だからかな?w
2017/08/27(日) 07:12:35.01ID:OA8i5cQF
「回答」ではなく「自分の知っていること」を長々と書くだけだから同定と回避はしやすいね
2017/08/28(月) 11:35:58.16ID:hSp+oBxP
https://togetter.com/li/1021897
"型は絶対書きたくない" "Ruby3は東京オリンピックまでに
" Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」
#rubykaigi 2016 Keynote
↑これを読んで本当に安心した
少なくともあと10年はRubyで型を書かなくてもよさそうな雰囲気
これで他の言語よりさらに10年遅れることになる
そのころにはすっかり浦島太郎でゴミになってることだろう、良かった
いや、もうすでにゴミなんだろうけど、その認識がもっと広まって
周知徹底していく過程が楽しめる
それでも完全放置プレーされてて単に周りから取り残されて風化していくんなら
それは自然現象なのでありふれてるっつーか、俺自身も含めて皆そうだしアレなんだけど
Rubyの良いところは頑張るんだけど方向性がおかしくてダメ、無意味な努力というのが良い
どのあたりで「折れる」のか、はたまた意地を貫き通して本当に「終わる」のか、見ものだ
これだけ啖呵を切って自ら退路を断ったのだから、ぜひとも華々しく散ってほしい
"型は絶対書きたくない" "Ruby3は東京オリンピックまでに
" Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」
#rubykaigi 2016 Keynote
↑これを読んで本当に安心した
少なくともあと10年はRubyで型を書かなくてもよさそうな雰囲気
これで他の言語よりさらに10年遅れることになる
そのころにはすっかり浦島太郎でゴミになってることだろう、良かった
いや、もうすでにゴミなんだろうけど、その認識がもっと広まって
周知徹底していく過程が楽しめる
それでも完全放置プレーされてて単に周りから取り残されて風化していくんなら
それは自然現象なのでありふれてるっつーか、俺自身も含めて皆そうだしアレなんだけど
Rubyの良いところは頑張るんだけど方向性がおかしくてダメ、無意味な努力というのが良い
どのあたりで「折れる」のか、はたまた意地を貫き通して本当に「終わる」のか、見ものだ
これだけ啖呵を切って自ら退路を断ったのだから、ぜひとも華々しく散ってほしい
2017/08/28(月) 12:11:24.54ID:hSp+oBxP
このようなことが本当に可能なのかどうなのか
メソッドが動的に生える場合は対応できないのは仕方が無いとしても
代入という代入を過去も含めてすべて精査しなければ、その変数に
何が入りえるかなど分かりようもない
プログラムが分岐していたら可能性が二つに分岐する
もっと端的に、配列のようなコンテナで
静的型言語なら同じインターフェースを持ったオブジェクトしか入らないわけだが
Rubyのような言語の配列はごった煮状態になりえるわけで・・・
さらに言えば変数への代入にしたって、同じ変数を、使いまわすかもしれない
変数へアクセスするときに適切に型スイッチしているならそれは合法なコードだが
検査ツールはそのことを検出して合法と決断を下さなければならない
型推論もコードを追わないといけないし、適切に使われているかもコードを追わないといけない
両方が泥団子であり、全くの不毛である
型という仲介を通して両者をつなぐとスッキリすることは既に十分実験されていて
分かり切ってるのにあえてこのような泥団子を好む人はいない
これから先このような無意味で壮大なことに労力を割くことで
Rubyのその他の面の進歩はどんどん遅れて、周りから取り残されていくだろう
10年単位で
是非そうなってほしい
メソッドが動的に生える場合は対応できないのは仕方が無いとしても
代入という代入を過去も含めてすべて精査しなければ、その変数に
何が入りえるかなど分かりようもない
プログラムが分岐していたら可能性が二つに分岐する
もっと端的に、配列のようなコンテナで
静的型言語なら同じインターフェースを持ったオブジェクトしか入らないわけだが
Rubyのような言語の配列はごった煮状態になりえるわけで・・・
さらに言えば変数への代入にしたって、同じ変数を、使いまわすかもしれない
変数へアクセスするときに適切に型スイッチしているならそれは合法なコードだが
検査ツールはそのことを検出して合法と決断を下さなければならない
型推論もコードを追わないといけないし、適切に使われているかもコードを追わないといけない
両方が泥団子であり、全くの不毛である
型という仲介を通して両者をつなぐとスッキリすることは既に十分実験されていて
分かり切ってるのにあえてこのような泥団子を好む人はいない
これから先このような無意味で壮大なことに労力を割くことで
Rubyのその他の面の進歩はどんどん遅れて、周りから取り残されていくだろう
10年単位で
是非そうなってほしい
2017/08/28(月) 12:31:29.95ID:hSp+oBxP
動的型が当たり前の時代が有ったり、静的型が当たり前の時代が有ったり
両社は振り子のように揺れ動くものであるから
今は静的型が人気だが、いづれ動的型の時代が来るかもしれない
今、安易に静的型を取り入れると、そのときになって対応できなくなるから
Rubyには静的型を入れない
↑という言い分だが、そもそもが全くの嘘、でっち上げである
思い出してみれば分かるが、動的型の時代など、「無かった」
C言語が登場して以来、ずっと静的型の時代だっただろう
時系列で言えば、C → C++ → Java → C# という感じの登場順かな
これらの言語は今でも人気がある、というか、先頭集団
ずっと継続して人気者のグループ
これらの言語にRubyが勝ってた時代があったか?
だから振り子のような現象というのが、もう、真っ赤なウソ
動的型言語の時代などなかったし、これから動的型言語の時代が来ることもない
とにかくあの人は隙あらば嘘をついて人をだまそうとする
例のカルト宗教の勧誘で得たテクニックなんだろうか、知らんがな
もう一つの嘘は、動的型言語でもJavascriptのように速度が速い言語もある
だから速度を上げるために静的型を入れる必要はない、っていうやつ
まぁ嘘っつーかアレだが、Javascriptは物凄く多大な労力かつ非常に高度なことをやって
あの速度を得ているわけだが、そんな実装はRubyでは無理って自分で分かってる癖に
しれっとこういうことを言う
だったら今すぐV8エンジン並みの実装用意しろよ、出来るんだろ?
両社は振り子のように揺れ動くものであるから
今は静的型が人気だが、いづれ動的型の時代が来るかもしれない
今、安易に静的型を取り入れると、そのときになって対応できなくなるから
Rubyには静的型を入れない
↑という言い分だが、そもそもが全くの嘘、でっち上げである
思い出してみれば分かるが、動的型の時代など、「無かった」
C言語が登場して以来、ずっと静的型の時代だっただろう
時系列で言えば、C → C++ → Java → C# という感じの登場順かな
これらの言語は今でも人気がある、というか、先頭集団
ずっと継続して人気者のグループ
これらの言語にRubyが勝ってた時代があったか?
だから振り子のような現象というのが、もう、真っ赤なウソ
動的型言語の時代などなかったし、これから動的型言語の時代が来ることもない
とにかくあの人は隙あらば嘘をついて人をだまそうとする
例のカルト宗教の勧誘で得たテクニックなんだろうか、知らんがな
もう一つの嘘は、動的型言語でもJavascriptのように速度が速い言語もある
だから速度を上げるために静的型を入れる必要はない、っていうやつ
まぁ嘘っつーかアレだが、Javascriptは物凄く多大な労力かつ非常に高度なことをやって
あの速度を得ているわけだが、そんな実装はRubyでは無理って自分で分かってる癖に
しれっとこういうことを言う
だったら今すぐV8エンジン並みの実装用意しろよ、出来るんだろ?
2017/08/28(月) 15:02:32.66ID:eUKA+ayD
誰も読んでないのによくもまあ長々と
2017/08/28(月) 15:05:07.43ID:Oh+Q2Yvx
>>66
反応したのはあなただけですよ
反応したのはあなただけですよ
2017/08/28(月) 16:00:48.15ID:sXxziykI
RubyだけでなくPythonやJavaScriptのような
広く普及している動的言語があるのに
一方的にゴミ呼ばわりする方がゴミ
広く普及している動的言語があるのに
一方的にゴミ呼ばわりする方がゴミ
2017/08/28(月) 17:02:01.88ID:hSp+oBxP
本当にそうであろうか
Pythonは型アノテーションを入れて過去の過ちを修正して未来へ向かおうとしているし
JavaScriptは実際ゴミ呼ばわりで、静的型のTypeScriptが評判良いし
まぁそのうち静的型の機能を取り入れるでしょう
あと、PHPも静的型の機能を取り入れているし
Perlも静的型の機能を取り入れている
徐々に周りは進歩している
ちょうど資本主義を受け入れた中国のようだ
Rubyだけが時が止まってて取り残される恰好なのに
さらに時を止めるつもりらしい ->「型は絶対書きたくない」
まるで北朝鮮といったところか
今は東京オリンピックまでに大陸間弾道ミサイルを作りたいと張り切っている
斜めっぷりというか、掛け違えたボタンというか
一回崩壊しないと正すのは無理なのかもしれないな
Pythonは型アノテーションを入れて過去の過ちを修正して未来へ向かおうとしているし
JavaScriptは実際ゴミ呼ばわりで、静的型のTypeScriptが評判良いし
まぁそのうち静的型の機能を取り入れるでしょう
あと、PHPも静的型の機能を取り入れているし
Perlも静的型の機能を取り入れている
徐々に周りは進歩している
ちょうど資本主義を受け入れた中国のようだ
Rubyだけが時が止まってて取り残される恰好なのに
さらに時を止めるつもりらしい ->「型は絶対書きたくない」
まるで北朝鮮といったところか
今は東京オリンピックまでに大陸間弾道ミサイルを作りたいと張り切っている
斜めっぷりというか、掛け違えたボタンというか
一回崩壊しないと正すのは無理なのかもしれないな
2017/08/28(月) 17:35:32.65ID:klwQ7++Z
プログラマが本当に必要だったもの:nullセーフ
という気がしている
という気がしている
2017/08/28(月) 18:28:27.74ID:6lvjC5oK
海を越えられないから自転車は使えないとか言って近所のコンビニに行くだけのために
テポドンを持ち出してくるようなゴミクズがまた出たのか
テポドンを持ち出してくるようなゴミクズがまた出たのか
2017/08/28(月) 18:38:27.51ID:G4YrO8Fv
なぜ、ある言語を批判したいというモチベーションが沸くのか不思議
オカンの料理を食うだけの穀潰しによって、オカンの料理は批判されるのである
オカンの料理を食うだけの穀潰しによって、オカンの料理は批判されるのである
2017/08/28(月) 20:23:51.87ID:sXxziykI
2017/08/29(火) 09:43:04.32ID:sLm25inw
東京のIT企業が松江に進出08/28 20:15nhk
松江市の技術者が開発したプログラミング言語「Ruby」を活用したシステム開発
を目指して、東京に本社を置くIT企業が松江市に進出することになりました。
新たに進出するのは東京に本社を置くIT企業、「パソナテック」で、28日、
吉永隆一社長が県庁を訪れました。
県庁では調印式が行われ、吉永社長と溝口知事、それに松江市の松浦市長が互いに
連携して事業を進めていくとする覚書にサインをしました。
「パソナテック」は新たな事業所を松江市朝日町のビルの一室に設けて、9月から
運営を開始します。
今後3年間で10人を採用する計画で、松江市の技術者が開発したプログラミング
言語「Ruby」を活用して企業の管理システムの開発を手がけるほか地元のIT
人材の育成などにも力を入れることにしています。
県や松江市も雇用の創出や地域産業の高度化につながるとして企業への助成など支援
を行うことにしています。
吉永社長は「人口減少や高齢化などの課題がある中、地方であっても優秀な人が活躍
できる環境を、産官学で連携しながらつくっていきたい」と話していました。
松江市の技術者が開発したプログラミング言語「Ruby」を活用したシステム開発
を目指して、東京に本社を置くIT企業が松江市に進出することになりました。
新たに進出するのは東京に本社を置くIT企業、「パソナテック」で、28日、
吉永隆一社長が県庁を訪れました。
県庁では調印式が行われ、吉永社長と溝口知事、それに松江市の松浦市長が互いに
連携して事業を進めていくとする覚書にサインをしました。
「パソナテック」は新たな事業所を松江市朝日町のビルの一室に設けて、9月から
運営を開始します。
今後3年間で10人を採用する計画で、松江市の技術者が開発したプログラミング
言語「Ruby」を活用して企業の管理システムの開発を手がけるほか地元のIT
人材の育成などにも力を入れることにしています。
県や松江市も雇用の創出や地域産業の高度化につながるとして企業への助成など支援
を行うことにしています。
吉永社長は「人口減少や高齢化などの課題がある中、地方であっても優秀な人が活躍
できる環境を、産官学で連携しながらつくっていきたい」と話していました。
2017/08/29(火) 15:10:08.29ID:pis/sDRy
76デフォルトの名無しさん
2017/08/29(火) 15:46:16.01ID:JnW2kyj+ スレチかもしれませんが質問です。
爆サイというサイトで「なりすまし防止」でパスワードを入れたんですが、解析されて同じトリップを相手に使用されました。
気持ち悪くて怖くなり、それ以来やっていません。
62^4=14776336通りもあるパスワードをどうやって解析したんでしょうか?
もし解析ができるなら、やり方までは聞きません。
解析ができるのかできないのかを知りたいです。お願いします。
爆サイというサイトで「なりすまし防止」でパスワードを入れたんですが、解析されて同じトリップを相手に使用されました。
気持ち悪くて怖くなり、それ以来やっていません。
62^4=14776336通りもあるパスワードをどうやって解析したんでしょうか?
もし解析ができるなら、やり方までは聞きません。
解析ができるのかできないのかを知りたいです。お願いします。
77デフォルトの名無しさん
2017/08/29(火) 16:15:40.30ID:BJnPfb6J2017/08/29(火) 16:27:04.06ID:Y/wjG5sQ
>>74
全然関係ないがパソナルームを思いだす
全然関係ないがパソナルームを思いだす
2017/08/29(火) 16:28:08.65ID:Y/wjG5sQ
80デフォルトの名無しさん
2017/08/29(火) 16:44:27.99ID:JnW2kyj+2017/08/29(火) 16:47:02.27ID:pis/sDRy
82デフォルトの名無しさん
2017/08/29(火) 16:49:49.66ID:BJnPfb6J Ruby + Sinatra + thinでWebアプリの開発を始めました。
ruby Server.rb -p 8080でthinを起動し、ブラウザで表示を確認しながら作ってます。
Server.rbを編集する毎にthinをstop'n'runしてます。
thinを終了する事なくServer.rbを編集結果をブラウザに反映させる事はできないでしょうか?
いちいちCTRL+C to stopしたく無いです。
ruby Server.rb -p 8080でthinを起動し、ブラウザで表示を確認しながら作ってます。
Server.rbを編集する毎にthinをstop'n'runしてます。
thinを終了する事なくServer.rbを編集結果をブラウザに反映させる事はできないでしょうか?
いちいちCTRL+C to stopしたく無いです。
2017/08/29(火) 16:58:57.30ID:iJMW5miQ
>>82
require 'sinatra/reloader'
require 'sinatra/reloader'
84デフォルトの名無しさん
2017/08/29(火) 17:04:48.19ID:JnW2kyj+ >>81
そうなんですか、参考になります。
しかし、ほんの数分で一致させるなんて偶然では無理ですよね?
解析ソフトのようなものが存在してるんでしょうか?
不思議で仕方ありません。
クレクレで、すみません。
そうなんですか、参考になります。
しかし、ほんの数分で一致させるなんて偶然では無理ですよね?
解析ソフトのようなものが存在してるんでしょうか?
不思議で仕方ありません。
クレクレで、すみません。
85デフォルトの名無しさん
2017/08/29(火) 17:10:47.07ID:BJnPfb6J やったぁ。解決
Sinatra/reloader
つかうのね。
Sinatra/reloader
つかうのね。
86デフォルトの名無しさん
2017/08/29(火) 17:11:11.49ID:BJnPfb6J >>83
THX
THX
2017/08/29(火) 18:15:11.07ID:yPA5+HL7
>>84
スレチ
スレチ
88デフォルトの名無しさん
2017/08/29(火) 20:28:38.26ID:I7TvgsKU >>87
すみません。どこのカテゴリーで尋ねればよろしいでしょうか?
すみません。どこのカテゴリーで尋ねればよろしいでしょうか?
2017/08/30(水) 00:35:21.68ID:RWIoRzHK
どうしてRubyスレで聞こうと思ったのか?
90デフォルトの名無しさん
2017/08/30(水) 00:38:57.38ID:LiEDh+or2017/08/30(水) 00:46:01.29ID:RiHZq49u
セキュリティ板とかインターネット板の
質スレで聞くか自分でスレ立てるか
質スレで聞くか自分でスレ立てるか
2017/08/30(水) 00:51:49.93ID:3Xe8rFR3
まだこっちのほうがいいんじゃないの
スレ立てるまでもない質問はここで 146匹目
https://mevius.2ch.net/test/read.cgi/tech/1487825717
てかスレチを承知していたのなら初めから誘導先を質問すればいいのに
スレ立てるまでもない質問はここで 146匹目
https://mevius.2ch.net/test/read.cgi/tech/1487825717
てかスレチを承知していたのなら初めから誘導先を質問すればいいのに
93デフォルトの名無しさん
2017/08/30(水) 00:58:13.48ID:LiEDh+or2017/08/30(水) 06:12:43.86ID:CwX8twwO
95デフォルトの名無しさん
2017/08/30(水) 06:32:03.89ID:0BSTFJq796デフォルトの名無しさん
2017/08/31(木) 16:34:34.12ID:wERnZJ6b >>1
【緊急】
すき家の定食に衝撃異物!
ずさんな管理体制が明らかとなった
指摘したその時!わざとらしく店員が声をあげごまかした!
229 名前:やめられない名無しさん [sage] :2017/08/29(火) 07:31:54.64 ID:EfhOnUp0
俺の朝はいつもすき家
楽しみにしてたのに・・今日に限って朝定食にしたんだ
見てくれ、これが証拠
店員さんも驚いて声をあげてる・・
https://www.youtube.com/watch?v=wjD4hUeU-CA
ちなみに半分食べた
お客様センターが通じない・・病院行く・・
(´・ω・`)すき家が大好きだったのに・・
【緊急】
すき家の定食に衝撃異物!
ずさんな管理体制が明らかとなった
指摘したその時!わざとらしく店員が声をあげごまかした!
229 名前:やめられない名無しさん [sage] :2017/08/29(火) 07:31:54.64 ID:EfhOnUp0
俺の朝はいつもすき家
楽しみにしてたのに・・今日に限って朝定食にしたんだ
見てくれ、これが証拠
店員さんも驚いて声をあげてる・・
https://www.youtube.com/watch?v=wjD4hUeU-CA
ちなみに半分食べた
お客様センターが通じない・・病院行く・・
(´・ω・`)すき家が大好きだったのに・・
97デフォルトの名無しさん
2017/08/31(木) 16:38:19.03ID:h+V1mYta progateでruby勉強してるんだけど到達点どれくらい?
2017/08/31(木) 17:57:09.21ID:c0+jc73k
>>96
アニサキスって赤かったっけ?
アニサキスって赤かったっけ?
2017/08/31(木) 20:41:59.19ID:WEncTfyZ
赤くないし火が通ってるなら食っても問題ない
100デフォルトの名無しさん
2017/08/31(木) 23:55:12.77ID:AVEhrEiF Win32APIライブラリでCreateWindowExいじってたら、割りと簡単にウィンドウ表示までは出来た
この先、作成したウィンドウのイベントメッセージ読むのとかプロシージャーの登録とかって可能なの?
Rubyのオブジェクトをwindowsのシステム側で扱う事に全然イメージがわかない
この先、作成したウィンドウのイベントメッセージ読むのとかプロシージャーの登録とかって可能なの?
Rubyのオブジェクトをwindowsのシステム側で扱う事に全然イメージがわかない
101デフォルトの名無しさん
2017/09/01(金) 03:18:52.55ID:9fFcfHIv 今どきWIN32APIを直に操作して
GUIアプリ作るのは推奨しない
GUIアプリ作るのは推奨しない
102デフォルトの名無しさん
2017/09/01(金) 06:07:20.32ID:i93+5y4B >>101
へ?秀丸とか、Win32API直に使ってるが。
へ?秀丸とか、Win32API直に使ってるが。
103デフォルトの名無しさん
2017/09/01(金) 06:58:32.78ID:9fFcfHIv >>102
そりゃ秀丸は20年以上も昔にできたソフトだからだろ
そりゃ秀丸は20年以上も昔にできたソフトだからだろ
104デフォルトの名無しさん
2017/09/01(金) 08:05:54.17ID:5FevI1x1105デフォルトの名無しさん
2017/09/01(金) 08:10:50.04ID:5FevI1x1 >>100
Win32APIモジュールはobsoleteじゃなかったっけ?
Win32APIモジュールはobsoleteじゃなかったっけ?
106デフォルトの名無しさん
2017/09/01(金) 09:21:39.76ID:Ob/n1Hvz >>105
require 'Win32API'
method = Win32API.new('UNZIP32.DLL', 'UnZipGetVersion', %w(v), 'l')
method.call()
こういうのは今は書けないのだっけか?
require 'Win32API'
method = Win32API.new('UNZIP32.DLL', 'UnZipGetVersion', %w(v), 'l')
method.call()
こういうのは今は書けないのだっけか?
107デフォルトの名無しさん
2017/09/01(金) 10:39:18.56ID:q9GEiqjl >>74
インド人エンジニアが松江に就職08/31 21:27nhk
松江市など5市でつくる経済圏域と経済連携協定を結んでいるインド南部のケララ州
から、初めて、エンジニアが松江にあるIT企業に就職することになり、松浦市長を
表敬訪問しました。
松江市でエンジニアとして働くことになったのは、インド・ケララ州出身の
ポール・ジョー・ジョージさんです。
市役所を表敬訪問し、松浦市長と対談しました。
ポールさんはことし1月、松江市にあるIT企業のインターンシップに参加したこと
をきっかけに松江で働くことに興味を持ち、受け入れ先の企業に入社することになりました。
ポールさんは、ケララ州から就職する初めてのエンジニアで、松浦市長から松江市の
印象について聞かれると「景色が美しく、人も親切な人が多いです。
働くことができてとてもうれしいです」と話していました。
また、松浦市長が「ケララ州と松江市を結ぶ人材となり、市の魅力を伝えてほしい」
と話すと、ポールさんも「ケララ州には日本に興味を持っている人が多いと思うので
ぜひ松江の魅力を友達に伝えていきたいです」と応じていました。
ポールさんは今後、松江市の技術者が開発したプログラミング言語「Ruby」
を用いて、スマートフォンアプリなどの開発に取り組むということです。
インド人エンジニアが松江に就職08/31 21:27nhk
松江市など5市でつくる経済圏域と経済連携協定を結んでいるインド南部のケララ州
から、初めて、エンジニアが松江にあるIT企業に就職することになり、松浦市長を
表敬訪問しました。
松江市でエンジニアとして働くことになったのは、インド・ケララ州出身の
ポール・ジョー・ジョージさんです。
市役所を表敬訪問し、松浦市長と対談しました。
ポールさんはことし1月、松江市にあるIT企業のインターンシップに参加したこと
をきっかけに松江で働くことに興味を持ち、受け入れ先の企業に入社することになりました。
ポールさんは、ケララ州から就職する初めてのエンジニアで、松浦市長から松江市の
印象について聞かれると「景色が美しく、人も親切な人が多いです。
働くことができてとてもうれしいです」と話していました。
また、松浦市長が「ケララ州と松江市を結ぶ人材となり、市の魅力を伝えてほしい」
と話すと、ポールさんも「ケララ州には日本に興味を持っている人が多いと思うので
ぜひ松江の魅力を友達に伝えていきたいです」と応じていました。
ポールさんは今後、松江市の技術者が開発したプログラミング言語「Ruby」
を用いて、スマートフォンアプリなどの開発に取り組むということです。
108デフォルトの名無しさん
2017/09/01(金) 11:10:27.06ID:5FevI1x1109デフォルトの名無しさん
2017/09/01(金) 13:39:28.29ID:9yK75Fqt コールバックやら面倒な構造体を用意する必要があるAPIは、dlやfiddleで
110デフォルトの名無しさん
2017/09/02(土) 17:36:15.59ID:FxmYDPin >>100
pythonの方が楽
pythonの方が楽
111デフォルトの名無しさん
2017/09/02(土) 18:03:38.70ID:8sP5WLe+112デフォルトの名無しさん
2017/09/02(土) 18:16:00.07ID:XK514dy6 >>110
C/C++の方が楽
C/C++の方が楽
113デフォルトの名無しさん
2017/09/02(土) 19:51:26.40ID:jwTYoGam >>112
wscriptの方が楽
wscriptの方が楽
114デフォルトの名無しさん
2017/09/02(土) 21:44:45.82ID:bg+UFj/h クロスプラットフォームGUIアプリであるAtomもVisualStudioCodeもお前らの嫌いなJavascript で動いているという事実。
それに引き換えRubyは初期からWindows環境冷遇し、英語ドキュメント揃えずソース読めで外人初心者冷遇し、今になってどっちも真面目に取り組んでたPythonに水を開けられた格好だね。
それに引き換えRubyは初期からWindows環境冷遇し、英語ドキュメント揃えずソース読めで外人初心者冷遇し、今になってどっちも真面目に取り組んでたPythonに水を開けられた格好だね。
115デフォルトの名無しさん
2017/09/02(土) 21:59:05.23ID:jEve2DY4 英語は冷遇してないぞ
今やRubyKaigiですら英語がデフォルトランゲージだ
今やRubyKaigiですら英語がデフォルトランゲージだ
116デフォルトの名無しさん
2017/09/02(土) 22:07:36.87ID:3OWZxoem ぐぐって調べたんだけど、
DLライブラリってruy1.8までのDL1みたいなものと、ruby1.9からのDL2みたいなものがあるのか
それはさて置き、
言われてたDLライブラリでは、ちゃんとウィンドウプロシージャでメッセージを読む所までいけた
webページ参考にしながらだったけどありがとう
DLライブラリってruy1.8までのDL1みたいなものと、ruby1.9からのDL2みたいなものがあるのか
それはさて置き、
言われてたDLライブラリでは、ちゃんとウィンドウプロシージャでメッセージを読む所までいけた
webページ参考にしながらだったけどありがとう
117デフォルトの名無しさん
2017/09/02(土) 22:40:25.94ID:ffADZB+6 Rubyに日本人が多いから
英語ドキュメントの不足は仕様がないにしても
Windowsはもっと対応すべきだったね
英語ドキュメントの不足は仕様がないにしても
Windowsはもっと対応すべきだったね
118デフォルトの名無しさん
2017/09/02(土) 22:41:38.02ID:ffADZB+6 Rubyの言語仕様は使いやすいけど
Windowsの環境構築が大変だし
Win用のGUIライブラリがパッとしない
Windowsの環境構築が大変だし
Win用のGUIライブラリがパッとしない
119デフォルトの名無しさん
2017/09/02(土) 23:23:24.21ID:3OWZxoem DLライブラリの構造体の値渡しについて詳しく
120デフォルトの名無しさん
2017/09/03(日) 17:47:18.77ID:skndupQG wxRuby
121デフォルトの名無しさん
2017/09/03(日) 23:11:40.50ID:q5J4dG7T あかん
DLの挙動を確認したいけど、構造体を値渡しする関数が思いつかん
手近なところで試すのにめんどくさくない関数ってなにかない?
DLの挙動を確認したいけど、構造体を値渡しする関数が思いつかん
手近なところで試すのにめんどくさくない関数ってなにかない?
122デフォルトの名無しさん
2017/09/03(日) 23:23:28.80ID:RvVPFZuP >>119
とにかく、構造体を値渡しするAPIをDLモジュールで呼び出せるかどうか、試してみろよ。
とにかく、構造体を値渡しするAPIをDLモジュールで呼び出せるかどうか、試してみろよ。
123デフォルトの名無しさん
2017/09/03(日) 23:26:38.55ID:RvVPFZuP おっといきちがい。
スクリーン座標かマウスポインタかをどうこうするAPIにそういうのがあったと思う。
オレはそれで乗り換えた記憶がある。
スクリーン座標かマウスポインタかをどうこうするAPIにそういうのがあったと思う。
オレはそれで乗り換えた記憶がある。
124デフォルトの名無しさん
2017/09/05(火) 22:33:24.08ID:MbNhWD1A MFC、ATLと続き、Cランタイムまでロードして色々試してまわったけど
構造体を値渡しする関数は自分で作らないとないっぽい
どれもこれもポインターをわたしとった
スマートポインターやインターフェイス、クラスやインスタンス、メンバーやメソッドの扱いなんかも、
DLではちょっと無理そう
こういうのは横着せずラッパー書いてやるしかないと思う
構造体を値渡しする関数は自分で作らないとないっぽい
どれもこれもポインターをわたしとった
スマートポインターやインターフェイス、クラスやインスタンス、メンバーやメソッドの扱いなんかも、
DLではちょっと無理そう
こういうのは横着せずラッパー書いてやるしかないと思う
125デフォルトの名無しさん
2017/09/05(火) 22:58:31.06ID:fnT2eJZH あほくさ。C#使やいいのに。100倍楽だわ
126デフォルトの名無しさん
2017/09/06(水) 00:41:36.28ID:eoNcIyiq な〜にキレてんだよ
不都合なレスでもでもあったのか?
不都合なレスでもでもあったのか?
127デフォルトの名無しさん
2017/09/06(水) 01:26:41.12ID:iI8edc8I >構造体を値渡しする
構造体みたいなサイズが大きいものは、普通、値渡し(コピー)しない
ポインタで渡すとコピーされないから、普通は、ポインタ(参照)渡し
構造体みたいなサイズが大きいものは、普通、値渡し(コピー)しない
ポインタで渡すとコピーされないから、普通は、ポインタ(参照)渡し
128デフォルトの名無しさん
2017/09/06(水) 02:14:32.33ID:eoNcIyiq age
129デフォルトの名無しさん
2017/09/06(水) 10:37:36.24ID:J8xaYq/0130デフォルトの名無しさん
2017/09/06(水) 10:38:56.74ID:ygscOEFy 言っちゃなんだけどバグの元だな
131デフォルトの名無しさん
2017/09/06(水) 10:40:20.14ID:J8xaYq/0132デフォルトの名無しさん
2017/09/06(水) 17:23:37.45ID:0rliz1cq dlでcallack使えるとかはもう出ていて、
今問題になってるのはdlでも構造体の値渡しができるかどうか
>>129
結果、下記ので呼べたけどこれじゃダメなの?
module MODU
〜
関数ロード部分
extern "int WindowFromPoint(int,int)"
〜
end
p MODU.windowFromPoint(x,y)
今問題になってるのはdlでも構造体の値渡しができるかどうか
>>129
結果、下記ので呼べたけどこれじゃダメなの?
module MODU
〜
関数ロード部分
extern "int WindowFromPoint(int,int)"
〜
end
p MODU.windowFromPoint(x,y)
133デフォルトの名無しさん
2017/09/06(水) 18:39:39.83ID:xWkzKu3e みんなffi使ってるからもうその話いいよ
134デフォルトの名無しさん
2017/09/06(水) 19:08:12.67ID:2frueYn2 ん?
荒らしが嫌がるという事は有益なレスなのか
いいぞ、もっとやれ
荒らしが嫌がるという事は有益なレスなのか
いいぞ、もっとやれ
135デフォルトの名無しさん
2017/09/06(水) 19:36:05.78ID:vILuBDeW >>132
たしかに素直な構造体ならいけそうだ。
場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
たしかに素直な構造体ならいけそうだ。
場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
136デフォルトの名無しさん
2017/09/06(水) 20:19:48.12ID:2frueYn2 単にリファレンスを読んでないだけじゃないのかそれ?
137デフォルトの名無しさん
2017/09/06(水) 23:23:31.25ID:ygscOEFy ↑ユーザー層が良く表れててサイコー
138デフォルトの名無しさん
2017/09/07(木) 03:19:34.26ID:ItXgki7C 133 名前:デフォルトの名無しさん 2017/09/06(水) 18:39:39.83 ID:xWkzKu3e
みんなffi使ってるからもうその話いいよ
134 名前:デフォルトの名無しさん 2017/09/06(水) 19:08:12.67 ID:2frueYn2
ん?
荒らしが嫌がるという事は有益なレスなのか
いいぞ、もっとやれ
135 名前:デフォルトの名無しさん 2017/09/06(水) 19:36:05.78 ID:vILuBDeW
>>132
たしかに素直な構造体ならいけそうだ。
場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
136 名前:デフォルトの名無しさん 2017/09/06(水) 20:19:48.12 ID:2frueYn2
単にリファレンスを読んでないだけじゃないのかそれ?
137 名前:デフォルトの名無しさん 2017/09/06(水) 23:23:31.25 ID:ygscOEFy
↑ユーザー層が良く表れててサイコー
みんなffi使ってるからもうその話いいよ
134 名前:デフォルトの名無しさん 2017/09/06(水) 19:08:12.67 ID:2frueYn2
ん?
荒らしが嫌がるという事は有益なレスなのか
いいぞ、もっとやれ
135 名前:デフォルトの名無しさん 2017/09/06(水) 19:36:05.78 ID:vILuBDeW
>>132
たしかに素直な構造体ならいけそうだ。
場合によってはアラインメントとかパディングとかでひっかかりそうだが、回避しきる自信があるのなら、もうそれでもいんじゃね?
オレならさっさと逃げるけどな。
136 名前:デフォルトの名無しさん 2017/09/06(水) 20:19:48.12 ID:2frueYn2
単にリファレンスを読んでないだけじゃないのかそれ?
137 名前:デフォルトの名無しさん 2017/09/06(水) 23:23:31.25 ID:ygscOEFy
↑ユーザー層が良く表れててサイコー
139デフォルトの名無しさん
2017/09/07(木) 23:57:00.12ID:04reamdt 別々のgemなのにrequireする時の名前がかぶってしまって、しかも両方を呼び出す必要がある場合、
どうやってrequireするのが正しいの?
例で、OpenGLのgemがいくつかあるけど、そのうちの二つが"opengl"でrequireする事になっている
どうやってrequireするのが正しいの?
例で、OpenGLのgemがいくつかあるけど、そのうちの二つが"opengl"でrequireする事になっている
140デフォルトの名無しさん
2017/09/08(金) 01:34:25.09ID:3vC4jpKo 問題ないです
名前が衝突することは良くありますが
Rubyはダックタイピングを基調としているので
名前(メソッド名)が同じなら同じような振る舞いをします
たとえ出所が違っていても名前が同じなら同じような振る舞いをします
これがダックタイピングであり
そのようなことはRubyが言語側で保証しているので
プログラマが心配することは有りません
名前が衝突することは良くありますが
Rubyはダックタイピングを基調としているので
名前(メソッド名)が同じなら同じような振る舞いをします
たとえ出所が違っていても名前が同じなら同じような振る舞いをします
これがダックタイピングであり
そのようなことはRubyが言語側で保証しているので
プログラマが心配することは有りません
141デフォルトの名無しさん
2017/09/08(金) 01:39:16.03ID:NantPsUO 質問:どうやって〜するのか?
回答:問題ない
?
回答:問題ない
?
142デフォルトの名無しさん
2017/09/08(金) 03:04:34.55ID:K2jDcQfO ・・・/上のディレクトリ/opengl
となっているのを
・・・/上のディレクトリ/exampl1/opengl
・・・/上のディレクトリ/exampl2/opengl
のように手作業で新しいディレクトリつくってそこに移動させる
で、
require "exampl1/opengl"
require "exampl2/opengl"
みたいな感じで呼び出す、とか
となっているのを
・・・/上のディレクトリ/exampl1/opengl
・・・/上のディレクトリ/exampl2/opengl
のように手作業で新しいディレクトリつくってそこに移動させる
で、
require "exampl1/opengl"
require "exampl2/opengl"
みたいな感じで呼び出す、とか
143デフォルトの名無しさん
2017/09/08(金) 03:19:41.86ID:mcCYyLIS ん、同じrbファイル内でrequireするの?
モジュール名も同じなら1つのモジュールの中に両方入ることになる気がするけど
モジュール名も同じなら1つのモジュールの中に両方入ることになる気がするけど
144デフォルトの名無しさん
2017/09/08(金) 05:59:14.78ID:/QLRsA7o 通常、Load-Pathで最初に見つかったファイルひとつをrequireする
requireはファイルパスつきで指定もできるので、区別できる程度のパスつきで指定すると実質複数読み込める
んでRubyはオープンクラスなのでAA#bbの定義が2回目のrequireで発見されたら2回目ので上書きされる
で、gemに限っては gem 'gemリポジトリ名' で指定して読み込むことができる(これは登録上被らないので)
一般的にはLoad-Path依存という回答
requireはファイルパスつきで指定もできるので、区別できる程度のパスつきで指定すると実質複数読み込める
んでRubyはオープンクラスなのでAA#bbの定義が2回目のrequireで発見されたら2回目ので上書きされる
で、gemに限っては gem 'gemリポジトリ名' で指定して読み込むことができる(これは登録上被らないので)
一般的にはLoad-Path依存という回答
145デフォルトの名無しさん
2017/09/08(金) 15:38:22.30ID:K2jDcQfO モジュール内だけとかにファイルを読み込めれば名前空間的な扱いができそう
requireやloadじゃなく、第三の読み込み方法が必要になるけど
requireやloadじゃなく、第三の読み込み方法が必要になるけど
146デフォルトの名無しさん
2017/09/08(金) 18:13:46.58ID:mcCYyLIS 異なるgemだけどトップレベルのモジュール名が同じものを
一つのrbファイルの中で扱う場合の対処方法として一般的に認知されてるものは無いっぽいね
(別のrbファイル内ならgemコマンドとrequireかな)
loadの第二引数でtrueを渡してAnonymousにしたモジュールに別名を付けるような仕組みがあればいいみたいだけど
loadはAnonymousモジュールを返してくれないから少しtrickyなことをしないと無理
ダサいけどdupして別名で使うのが簡単な気がする
あとはforkしてrenameとかかな
#load_foo.rb
require ‘foo'
Bar = Foo.dup
Object.send(:remove_const, :Foo)
#main.rb
require ‘load_foo’
Bar.something
一つのrbファイルの中で扱う場合の対処方法として一般的に認知されてるものは無いっぽいね
(別のrbファイル内ならgemコマンドとrequireかな)
loadの第二引数でtrueを渡してAnonymousにしたモジュールに別名を付けるような仕組みがあればいいみたいだけど
loadはAnonymousモジュールを返してくれないから少しtrickyなことをしないと無理
ダサいけどdupして別名で使うのが簡単な気がする
あとはforkしてrenameとかかな
#load_foo.rb
require ‘foo'
Bar = Foo.dup
Object.send(:remove_const, :Foo)
#main.rb
require ‘load_foo’
Bar.something
147デフォルトの名無しさん
2017/09/08(金) 20:25:09.24ID:dCkrwQvc でも、違うクラスのほうを見にいって、うまく動作しないはめになりそうだけどな。
148デフォルトの名無しさん
2017/09/08(金) 21:38:34.51ID:K2jDcQfO 適当なモジュールを定義して、
そのモジュールに対してmodule_evalでファイルを評価させるとかどう?
ファイル側はトップレベルでのloadを想定してるだろうから、何らかから派生させたモジュールを用意する必要があると思うけど
kernelだったかmainだったか
で、同名のファイルも別のモジュールでeval
そのモジュールに対してmodule_evalでファイルを評価させるとかどう?
ファイル側はトップレベルでのloadを想定してるだろうから、何らかから派生させたモジュールを用意する必要があると思うけど
kernelだったかmainだったか
で、同名のファイルも別のモジュールでeval
149デフォルトの名無しさん
2017/09/09(土) 08:22:23.23ID:A2Lkc5St ヤフー株式会社が中途採用していたので応募した。
会社半休とって、深夜01時までかけて、写真付き履歴書、職務経歴書(必須提出書類)つくった。
火曜に提出、金曜に不採用通知が来た。
ショック!でもまあ、さすが爆速開発の会社。
まあ、しょうがない。
会社半休とって、深夜01時までかけて、写真付き履歴書、職務経歴書(必須提出書類)つくった。
火曜に提出、金曜に不採用通知が来た。
ショック!でもまあ、さすが爆速開発の会社。
まあ、しょうがない。
150デフォルトの名無しさん
2017/09/10(日) 21:05:31.91ID:16Gqj/Qh RubyはマルチパラダイムなLLって言われるけど、
ほんとどんな書き方でも可能だよな
逆に、他の言語で可能だけどRubyじゃできない書き方って何かあるの?
ほんとどんな書き方でも可能だよな
逆に、他の言語で可能だけどRubyじゃできない書き方って何かあるの?
151デフォルトの名無しさん
2017/09/10(日) 21:08:03.14ID:n6o1Bnrv n++
152デフォルトの名無しさん
2017/09/10(日) 21:29:31.42ID:E1NtPZfm パターンマッチ
参照渡し
Null非許容参照型
参照渡し
Null非許容参照型
153デフォルトの名無しさん
2017/09/10(日) 21:31:59.45ID:CfAD8p5O154デフォルトの名無しさん
2017/09/10(日) 22:01:26.40ID:/lqG1P6W >>150
インテリセンスのような、洗練されたIDEサポート。
インテリセンスのような、洗練されたIDEサポート。
155デフォルトの名無しさん
2017/09/10(日) 22:08:47.22ID:pWB+7BVh >>150
なので、他人の読むほうからしたら悪夢のような言語
なので、他人の読むほうからしたら悪夢のような言語
156デフォルトの名無しさん
2017/09/11(月) 03:20:30.57ID:jNI6u+LE こりゃあ自演やってますわ
晒しage
晒しage
157デフォルトの名無しさん
2017/09/11(月) 03:47:13.89ID:uZhmkQHT 嘘をつかないとネガキャンもできないとか、
どんだけこの言語は強力なんだよ
それ程rubyが怖いの?
どんだけこの言語は強力なんだよ
それ程rubyが怖いの?
158デフォルトの名無しさん
2017/09/11(月) 04:39:33.36ID:0SM4UhfV こんなやつらばっかりじゃそりゃpythonに負けるわけだw
159デフォルトの名無しさん
2017/09/11(月) 05:07:13.86ID:VvF2iP9D160デフォルトの名無しさん
2017/09/11(月) 05:26:08.54ID:uZhmkQHT python騙るなボケ
このpythonの恥さらしが
勝利宣言なんか負けですと言ってる様なもんだろ
このpythonの恥さらしが
勝利宣言なんか負けですと言ってる様なもんだろ
161デフォルトの名無しさん
2017/09/11(月) 05:49:53.28ID:qwui3b48 書き方を聞いたんだけど、なんで答えてるレスはどれも同じ様な勘違いしてるの?
もしかして自演するほどRubyが怖い?
もしかして自演するほどRubyが怖い?
162デフォルトの名無しさん
2017/09/11(月) 06:11:35.71ID:6TazFtUw 使えない言語ならそもそもアンチなんて湧かないし
使える言語だからこそ怖いんだよ
使える言語だからこそ怖いんだよ
163159
2017/09/11(月) 06:50:21.08ID:VvF2iP9D164デフォルトの名無しさん
2017/09/11(月) 07:01:29.60ID:6TazFtUw 嘘を付いてまでネガキャンしてる人がいるから言語の話は無理だと思うよ
もうちょっと荒れていない時を見計らったら?
それに、それ、異論がばんばん出そうだし
もうちょっと荒れていない時を見計らったら?
それに、それ、異論がばんばん出そうだし
165デフォルトの名無しさん
2017/09/11(月) 09:25:49.87ID:9tUjHIzk クラスはClassクラスのインスタンスだってのがよく判らん。
Fixnum, String, ArrayもClassクラスのインスタンスだって事らしい。
こんな仕様が一体、何の役に立つんだ?
Fixnum, String, ArrayもClassクラスのインスタンスだって事らしい。
こんな仕様が一体、何の役に立つんだ?
166デフォルトの名無しさん
2017/09/11(月) 09:28:34.16ID:9tUjHIzk インスタンスなのだから、クラスのメソッドをもちろん呼べる。スーパークラスのメソッドも呼べる。
それから、Classクラスのメソッドも呼べる。こういう仕様にしたかったという事なのだろうか?
それから、Classクラスのメソッドも呼べる。こういう仕様にしたかったという事なのだろうか?
167デフォルトの名無しさん
2017/09/11(月) 09:43:53.15ID:9tUjHIzk Classクラスにインスタンス変数を定義すれば、すべてのクラスのクラス変数(Static変数みたいなもん)となる。
class Class
attr_accessor :foo
end
class Foo;end
Foo.foo = 10
puts Foo.foo # => 10
どうやら、こういう事が出来る様になるらしい。
class Class
attr_accessor :foo
end
class Foo;end
Foo.foo = 10
puts Foo.foo # => 10
どうやら、こういう事が出来る様になるらしい。
168デフォルトの名無しさん
2017/09/11(月) 09:50:42.79ID:R+JnAI3g どのサイト見てそういう話になっていっているのか少し気になる
Webサイトは焚書できないからな
Webサイトは焚書できないからな
169デフォルトの名無しさん
2017/09/11(月) 10:03:46.95ID:9tUjHIzk BasciObject, Objectがクラスで
Kernel, Moduleがモジュールだ。
ClassはModuleを継承したクラスだ。Classにあるメソッドは、new, superclassだ。全てのクラスはClassのインスタンスなので、
Foo.new, String.new, Foo.superclass, String.superclassといったクラスメソッドを呼び出す事ができる。
ModuleにはRubyのリフレクション機能を実現するメソッドやeval族がある。
例:nacestors, instance_method, method_defined?
例:class_eval, instance….おっと、instance_evalはBasicObjectにある。
うぅーん。独特な世界観だ。
Kernel, Moduleがモジュールだ。
ClassはModuleを継承したクラスだ。Classにあるメソッドは、new, superclassだ。全てのクラスはClassのインスタンスなので、
Foo.new, String.new, Foo.superclass, String.superclassといったクラスメソッドを呼び出す事ができる。
ModuleにはRubyのリフレクション機能を実現するメソッドやeval族がある。
例:nacestors, instance_method, method_defined?
例:class_eval, instance….おっと、instance_evalはBasicObjectにある。
うぅーん。独特な世界観だ。
170デフォルトの名無しさん
2017/09/11(月) 10:05:04.24ID:9tUjHIzk >>168
みてるのは、『メタプログラミングRuby」第一版。
みてるのは、『メタプログラミングRuby」第一版。
171デフォルトの名無しさん
2017/09/11(月) 10:08:48.21ID:9tUjHIzk あと見ているのは、Ruby 2.0.0 Reference Manual。macOS SierraにはRuby2.0が最初から入っているから、ちょいと古いRubyを使ってる。
Ruby2.2あたりでGCの改良があって、その関係でSecurity重視のWebアプリ作る場合は、2.0はNGらしい。
誤解してる?
Ruby2.2あたりでGCの改良があって、その関係でSecurity重視のWebアプリ作る場合は、2.0はNGらしい。
誤解してる?
172デフォルトの名無しさん
2017/09/11(月) 10:10:47.61ID:OodeiMD8 そういう問題じゃなくて、Webアプリ作るなら実行環境と開発環境をなるべく同じにするのは当たり前。
特にRubyみたいに互換性のいい加減なものを使うなら尚更のこと。
特にRubyみたいに互換性のいい加減なものを使うなら尚更のこと。
173デフォルトの名無しさん
2017/09/11(月) 10:15:39.57ID:hxvjUFQQ webサーバやDSLの主流言語の一つって時点で他の主要言語を繋げて扱える上に手軽だから
使える人が増える事はあっても、減ることは無い
そしてRuby恐怖症患者が恐れているのはこの部分だと思う
使える人が増える事はあっても、減ることは無い
そしてRuby恐怖症患者が恐れているのはこの部分だと思う
174デフォルトの名無しさん
2017/09/11(月) 10:17:31.55ID:9tUjHIzk 俺的ざっくりRubyのバージョンによる違い。
1. 2.0 - 2.1は1.9.3のbugfix版
2. 2.2 - 2.4はGC改良されてるが、言語仕様的には1.9.3と大差無い。
Fixnum, BignumがIntegerに統合された(2.4)とか、String Literalがdefaultでfrozenされている(2.3)とか、細かな仕様変更があるが、俺への影響は無いな。
1. 2.0 - 2.1は1.9.3のbugfix版
2. 2.2 - 2.4はGC改良されてるが、言語仕様的には1.9.3と大差無い。
Fixnum, BignumがIntegerに統合された(2.4)とか、String Literalがdefaultでfrozenされている(2.3)とか、細かな仕様変更があるが、俺への影響は無いな。
175デフォルトの名無しさん
2017/09/11(月) 10:21:25.75ID:9tUjHIzk 俺:昔Ruby1.8 - 1.9.2の頃、WebスクレイピングをRubyでやってた。Mechanizeとか便利だぁ。。。とか言いながら。その頃DSLなんてあまり気にしなかった。
しばらくXcodeばかりいじって居て、Rubyに戻ってきたら2.4になってた。SinatraとかRailsとか触ってみたら、DSLバリバリで、これはまずいと感じて、「メタプログラミング」の本読んでます。
しばらくXcodeばかりいじって居て、Rubyに戻ってきたら2.4になってた。SinatraとかRailsとか触ってみたら、DSLバリバリで、これはまずいと感じて、「メタプログラミング」の本読んでます。
176デフォルトの名無しさん
2017/09/11(月) 10:23:03.39ID:9tUjHIzk Rubyの歴史については、en.wikipediaのRuby(programing language)のpageがよく纏まっている。
177デフォルトの名無しさん
2017/09/11(月) 10:29:24.77ID:9tUjHIzk 今後、Ruby2.5, Ruby3.0が予定されているが、3.0の仕様は流動的みたいだ。
1. 並列処理
2. 静的型付け
1は技術的に難しそうだし、2はコミュニティに受け入れられるのか?
1. 並列処理
2. 静的型付け
1は技術的に難しそうだし、2はコミュニティに受け入れられるのか?
178デフォルトの名無しさん
2017/09/11(月) 10:30:38.59ID:R+JnAI3g 反省している
179デフォルトの名無しさん
2017/09/11(月) 10:31:18.51ID:AukiEDF0 >>178
はい
はい
180デフォルトの名無しさん
2017/09/11(月) 10:36:20.19ID:ggzNTq4z181デフォルトの名無しさん
2017/09/11(月) 10:42:25.66ID:9tUjHIzk182デフォルトの名無しさん
2017/09/11(月) 10:43:38.99ID:OodeiMD8 >>180
それは違う
Rubyのクラスはそれ自体が本当にオブジェクトだけど、
.NETのTypeオブジェクトやJavaのClassオブジェクトはリフレクションのためのハンドルに過ぎず、オブジェクトとは明確に異なる
それは違う
Rubyのクラスはそれ自体が本当にオブジェクトだけど、
.NETのTypeオブジェクトやJavaのClassオブジェクトはリフレクションのためのハンドルに過ぎず、オブジェクトとは明確に異なる
183デフォルトの名無しさん
2017/09/11(月) 10:48:45.33ID:9tUjHIzk クラス自体を処理の対象にする、ってのは例えばStringクラスのsizeメソッドの仕様が気に食わん。
だったら、俺が好きな仕様に変えてやる!(モンキーパッチング)
って事ができるのは、StringクラスがClassクラスのインスタンスだから出来るってことなのかも。
だったら、俺が好きな仕様に変えてやる!(モンキーパッチング)
って事ができるのは、StringクラスがClassクラスのインスタンスだから出来るってことなのかも。
184デフォルトの名無しさん
2017/09/11(月) 10:56:59.59ID:9tUjHIzk クラス拡張、オブジェクト拡張は
class << self; end
class << obj; end
って感じで行うが、extendメソッドを使ってもできる。
こいつがクラス拡張、オブジェクト拡張のショートカットみたいだ。
class MyClass
extend MyModule
end
こんな感じ。
class MyClass
class << self
include MyModule
end
end
こんな事しなくても良くなる。
class << self; end
class << obj; end
って感じで行うが、extendメソッドを使ってもできる。
こいつがクラス拡張、オブジェクト拡張のショートカットみたいだ。
class MyClass
extend MyModule
end
こんな感じ。
class MyClass
class << self
include MyModule
end
end
こんな事しなくても良くなる。
185デフォルトの名無しさん
2017/09/11(月) 11:14:01.54ID:9tUjHIzk 俺の備忘録、スレ汚しスマソ
aliasを使うとメソッドの再定義ができる。
String#lengthメソッドを再定義して、再定義前の実装をreal_lengthで呼び出せる様に退避させる様にする例。
class String
alias :real_length :length
def length
# anaother implementation
end
end
aliasを使うとメソッドの再定義ができる。
String#lengthメソッドを再定義して、再定義前の実装をreal_lengthで呼び出せる様に退避させる様にする例。
class String
alias :real_length :length
def length
# anaother implementation
end
end
186デフォルトの名無しさん
2017/09/11(月) 11:21:39.37ID:9tUjHIzk aliasを使うと同じ実装を2つの名前で、可視性private/publicをコントロールしながら呼び出したりできる。
class C
def x; “OK”; end
alias :y :x
private :x
end
obj = C.new
obj.y # => “OK”
obj.x # => private methodだから呼べまシェーン。
class C
def x; “OK”; end
alias :y :x
private :x
end
obj = C.new
obj.y # => “OK”
obj.x # => private methodだから呼べまシェーン。
187デフォルトの名無しさん
2017/09/11(月) 12:03:38.85ID:ggzNTq4z188デフォルトの名無しさん
2017/09/11(月) 14:19:18.95ID:VvF2iP9D189デフォルトの名無しさん
2017/09/11(月) 15:26:04.86ID:4atU11H8 うわ、まだこんな言語やってるやついたんだ
endとかきめえ
endとかきめえ
190デフォルトの名無しさん
2017/09/11(月) 15:46:37.43ID:y9RYm9ja 自分が使ってない言語の出来なんかどうでもいいだろ
関係ないんだよ、君には
関係ないんだよ、君には
191デフォルトの名無しさん
2017/09/11(月) 15:51:37.08ID:9tUjHIzk 中かっこで、一行で治るblockを記述し、
do end, class endで複数行に渡るblockを記述する。
class endもblockらしい。
例:
class Foo
puts ‘OK’ # => OK、なんと実行されちゃう!
end
do end, class endで複数行に渡るblockを記述する。
class endもblockらしい。
例:
class Foo
puts ‘OK’ # => OK、なんと実行されちゃう!
end
192デフォルトの名無しさん
2017/09/11(月) 15:53:04.47ID:9tUjHIzk class Bar
attr_accessor :a
end
これもModule#attr_accessorメソッドの呼び出し(引数:a)だって。
attr_accessor :a
end
これもModule#attr_accessorメソッドの呼び出し(引数:a)だって。
193デフォルトの名無しさん
2017/09/11(月) 15:53:50.74ID:9tUjHIzk putsはKernel#putsで定義されている。
194デフォルトの名無しさん
2017/09/11(月) 15:55:48.32ID:9tUjHIzk putsってグローバル関数だと思ってた。Rubyにはグローバル関数ってのは無いのか?
たしか、$fooでグローバル変数だよねぇ。
たしか、$fooでグローバル変数だよねぇ。
195デフォルトの名無しさん
2017/09/11(月) 16:15:12.72ID:I3u+9T/v ID:9tUjHIzkこそRubyを使うのに相応しい人材だ
Rubyはこうでなくてはダメだ
Rubyはこうでなくてはダメだ
196デフォルトの名無しさん
2017/09/11(月) 16:24:37.91ID:9tUjHIzk 試しにやってみた。
class Bar
#attr_accessor :a
attr_accessor “a”
end
puts (Bar.new).a = 3 # => 3
なんと、attr_accessorの引数はputsと同じ様に文字列でもOK!
調子に乗って、
puts :OK
puts :Failed NG # error
puts :”Failed NG”
うぅーん。Symbolと文字リテラルは違うはず。
class Bar
#attr_accessor :a
attr_accessor “a”
end
puts (Bar.new).a = 3 # => 3
なんと、attr_accessorの引数はputsと同じ様に文字列でもOK!
調子に乗って、
puts :OK
puts :Failed NG # error
puts :”Failed NG”
うぅーん。Symbolと文字リテラルは違うはず。
197デフォルトの名無しさん
2017/09/11(月) 17:27:22.55ID:ggzNTq4z >>196
カンマ
カンマ
198デフォルトの名無しさん
2017/09/11(月) 17:28:46.19ID:VvF2iP9D199デフォルトの名無しさん
2017/09/11(月) 18:25:05.46ID:VnfANrEr ネガキャンはとうとう嘘まで付いちゃったか
200デフォルトの名無しさん
2017/09/11(月) 19:01:04.46ID:dKd+OEyf ruby 2.1
WEBrick 1.3.1
Internal Server Error
(erb):58: syntax error, unexpected end-of-input, expecting keyword_end ; _erbout.force_encoding(__ENCODING__) ^
文法エラー、予期せぬend-of-input、keyword_endを待つ;
_erbout.force_encoding(__ENCODING__) ^
って何でしょうか?
WEBrick 1.3.1
Internal Server Error
(erb):58: syntax error, unexpected end-of-input, expecting keyword_end ; _erbout.force_encoding(__ENCODING__) ^
文法エラー、予期せぬend-of-input、keyword_endを待つ;
_erbout.force_encoding(__ENCODING__) ^
って何でしょうか?
201デフォルトの名無しさん
2017/09/11(月) 19:35:28.63ID:503iQjsy 文法エラーだろ。
まずそれを修正すれば。
まずそれを修正すれば。
202デフォルトの名無しさん
2017/09/11(月) 20:12:04.40ID:Se8bNuoM203デフォルトの名無しさん
2017/09/11(月) 20:31:42.69ID:8y57wnUU >>163
確かに「Rubyはマルチパラダイム言語である」の明確な反証になっているね
ところで、Python の公式文書には以下の記述がある:
https://docs.python.jp/3/howto/functional.html
>> 複数のアプローチに対応した言語もあり、
>> Lisp, C++, Python はそうしたマルチパラダイム言語です
故に、少なくとも Python は標準で論理型をサポートしていないから、
>>163 の主張は「Python はマルチパラダイム言語である」の反証でもある訳だ
たかだか2chの通りすがりのカキコ(>>150)どころか、
Python様の公式文書にすら堂々と反証してしまう >>163 ってスゲーよなあ(棒
確かに「Rubyはマルチパラダイム言語である」の明確な反証になっているね
ところで、Python の公式文書には以下の記述がある:
https://docs.python.jp/3/howto/functional.html
>> 複数のアプローチに対応した言語もあり、
>> Lisp, C++, Python はそうしたマルチパラダイム言語です
故に、少なくとも Python は標準で論理型をサポートしていないから、
>>163 の主張は「Python はマルチパラダイム言語である」の反証でもある訳だ
たかだか2chの通りすがりのカキコ(>>150)どころか、
Python様の公式文書にすら堂々と反証してしまう >>163 ってスゲーよなあ(棒
204デフォルトの名無しさん
2017/09/11(月) 20:38:54.64ID:I3u+9T/v >>203
君もRubyとRubyコミュニティーに向いてる人材だな
君もRubyとRubyコミュニティーに向いてる人材だな
205デフォルトの名無しさん
2017/09/11(月) 20:43:18.49ID:wRb7h9Km >>200
endを期待してるところでendが無いよってエラーだよ
_erbout.force_encoding(__ENCODING__) は
ERB#set_eoutvar内で呼ばれてる処理だけど
今の理解状況なら気にする必要ない
endを期待してるところでendが無いよってエラーだよ
_erbout.force_encoding(__ENCODING__) は
ERB#set_eoutvar内で呼ばれてる処理だけど
今の理解状況なら気にする必要ない
206デフォルトの名無しさん
2017/09/11(月) 20:47:01.81ID:8y57wnUU >>174
自作のRubyで書いたドキュメンテーションツールを日常的に使っているけど、
1.9 で28秒だったのが(ほんの気まぐれで) 2.4 へ変えただけで6秒になった
レスポンスが4倍から5倍変わるのは大きなインパクトだった
付け加えると、こうしてバージュンアップを繰り返してもなお
後方互換性を維持し続けてくれているのはありがたい
(もちろん自作ツールでメタプログラミングといった魔術は使っていないが)
自作のRubyで書いたドキュメンテーションツールを日常的に使っているけど、
1.9 で28秒だったのが(ほんの気まぐれで) 2.4 へ変えただけで6秒になった
レスポンスが4倍から5倍変わるのは大きなインパクトだった
付け加えると、こうしてバージュンアップを繰り返してもなお
後方互換性を維持し続けてくれているのはありがたい
(もちろん自作ツールでメタプログラミングといった魔術は使っていないが)
207デフォルトの名無しさん
2017/09/11(月) 20:50:22.49ID:pNAVrMoT >後方互換性を維持し続けてくれているのはありがたい
ナイスジョーク👍
ナイスジョーク👍
208200
2017/09/11(月) 20:55:04.19ID:dKd+OEyf209デフォルトの名無しさん
2017/09/11(月) 21:28:47.33ID:8y57wnUU >>207
>ナイスジョーク👍
確かに世の中にはバージョンアップしただけで、たかだか
Hello world すら動かなくなるナイスジョーク👍な言語も存在する(棒
Rubyの設計上の欠点とは何か?
http://mevius.2ch.net/test/read.cgi/tech/1413113999/126
>ナイスジョーク👍
確かに世の中にはバージョンアップしただけで、たかだか
Hello world すら動かなくなるナイスジョーク👍な言語も存在する(棒
Rubyの設計上の欠点とは何か?
http://mevius.2ch.net/test/read.cgi/tech/1413113999/126
210デフォルトの名無しさん
2017/09/11(月) 22:10:48.79ID:8y57wnUU >>150
>逆に、他の言語で可能だけどRubyじゃできない書き方って何かあるの?
Ruby と競合するLLで、かつ関数型というパラダイムに限定すれば、
「関数は一級市民ではない」という制限がある
これは Ruby の世界だと「メソッドがオブジェクトではない」と
言い換えることができる
具体的なコードを Python で示そう:
(注:以下は Python を例にしているが、JavaScriptでも同様なコードは書ける)
>>> def add(x, y): return x + y # 関数 add を定義
... ^D
>>> add(1, 2) # 関数へ実引数 (1, 2) を適用
3
>>> f = add # 関数は値(=一級市民)だから、それを別の変数 f として宣言
>>> f(1, 2) # 変数 f へ実引数 (1, 2) を適用しても add と同じ結果になる
3
それに対して Ruby では:
irb(main):001:0> def add(x, y); x + y; end # メソッド add を定義
=> :add
irb(main):002:0> f = add # メソッドは値(=一級市民)ではないから..(略
ArgumentError: wrong number of arguments (given 0, expected 2)
from (irb):1:in `add'
from (irb):2
from /opt/local/bin/irb:11:in `<main>'
>逆に、他の言語で可能だけどRubyじゃできない書き方って何かあるの?
Ruby と競合するLLで、かつ関数型というパラダイムに限定すれば、
「関数は一級市民ではない」という制限がある
これは Ruby の世界だと「メソッドがオブジェクトではない」と
言い換えることができる
具体的なコードを Python で示そう:
(注:以下は Python を例にしているが、JavaScriptでも同様なコードは書ける)
>>> def add(x, y): return x + y # 関数 add を定義
... ^D
>>> add(1, 2) # 関数へ実引数 (1, 2) を適用
3
>>> f = add # 関数は値(=一級市民)だから、それを別の変数 f として宣言
>>> f(1, 2) # 変数 f へ実引数 (1, 2) を適用しても add と同じ結果になる
3
それに対して Ruby では:
irb(main):001:0> def add(x, y); x + y; end # メソッド add を定義
=> :add
irb(main):002:0> f = add # メソッドは値(=一級市民)ではないから..(略
ArgumentError: wrong number of arguments (given 0, expected 2)
from (irb):1:in `add'
from (irb):2
from /opt/local/bin/irb:11:in `<main>'
211デフォルトの名無しさん
2017/09/11(月) 22:53:57.56ID:/+/7clo/ ブロックがオブジェクトじゃないのはほんと糞
Rubyは基本的に嫌いじゃないけどこれだけは擁護できないわ
Rubyは基本的に嫌いじゃないけどこれだけは擁護できないわ
212デフォルトの名無しさん
2017/09/11(月) 23:30:33.81ID:503iQjsy いや、ふつう。
必要であればlambdaにすればよし。
必要であればlambdaにすればよし。
213デフォルトの名無しさん
2017/09/11(月) 23:51:41.69ID:dZxzu+uY214163
2017/09/12(火) 00:16:04.48ID:EWvqPynr215デフォルトの名無しさん
2017/09/12(火) 00:26:02.80ID:FDETfUWp メソッド呼び出し時の括弧をオプショナルにしてるから
f = add みたいなのは出来ないよね
でもそういう使い方をするときはメソッドじゃなくProcオブジェクト使う
だからObject#methodを実際のコードで使ったことはない
f = add みたいなのは出来ないよね
でもそういう使い方をするときはメソッドじゃなくProcオブジェクト使う
だからObject#methodを実際のコードで使ったことはない
216デフォルトの名無しさん
2017/09/12(火) 00:37:53.72ID:JOxdLua/ 俺が質問したのは書き方
Rubyは純オブジェクト指向で書けるし、関数言語的な書き方も可能、ワンライナーやダックタイピング、メタプログラミングも書ける
だから逆に他の言語で実用的な書き方を挙げてほしかったんだけど
Rubyは純オブジェクト指向で書けるし、関数言語的な書き方も可能、ワンライナーやダックタイピング、メタプログラミングも書ける
だから逆に他の言語で実用的な書き方を挙げてほしかったんだけど
217デフォルトの名無しさん
2017/09/12(火) 01:09:50.45ID:HQWpPXKt n++
218デフォルトの名無しさん
2017/09/12(火) 01:10:31.53ID:HQWpPXKt rubyの連中は、初心者、日本人をバカにするからきらいだ
219デフォルトの名無しさん
2017/09/12(火) 01:11:34.30ID:HQWpPXKt マルチパラダイムの言語をしらべればいいだろ
D, pike, いろいろある
D, pike, いろいろある
220デフォルトの名無しさん
2017/09/12(火) 01:12:37.06ID:K8M+GTE7 >>215
何でそんな言い訳がましい書き方すんの?
defで宣言した関数は変数に代入出来ない。そのような場合はProcを使う必要がある。この行き当たりばったりな仕様は関数を第一級オブジェクトとして扱える言語が流行ってきたため「る、rubyでもできるし!」と言いたいがために適当に実装したためである、ってスパっと言えよ。
何でそんな言い訳がましい書き方すんの?
defで宣言した関数は変数に代入出来ない。そのような場合はProcを使う必要がある。この行き当たりばったりな仕様は関数を第一級オブジェクトとして扱える言語が流行ってきたため「る、rubyでもできるし!」と言いたいがために適当に実装したためである、ってスパっと言えよ。
221デフォルトの名無しさん
2017/09/12(火) 01:15:08.18ID:EWvqPynr222デフォルトの名無しさん
2017/09/12(火) 01:19:06.28ID:TH/zNQOA 思い込みで嘘振りまいてたアンチが発狂しとる
223デフォルトの名無しさん
2017/09/12(火) 02:14:24.98ID:FDETfUWp224デフォルトの名無しさん
2017/09/12(火) 03:23:16.78ID:65BZCqIl http://fatiherikli.github.io/fil/
のローカル版のような2画面エディタないですか
のローカル版のような2画面エディタないですか
225デフォルトの名無しさん
2017/09/12(火) 06:32:54.30ID:Yg2YMH7r226デフォルトの名無しさん
2017/09/12(火) 07:48:04.25ID:xdcKpwUc Emacsじゃあかんの
227デフォルトの名無しさん
2017/09/12(火) 10:04:19.58ID:9jgbEmKh >>218
Rubyの連中ってのは、「たのしい」だとか、「直感的」とか、「生産性が高い」
とかってよく言う。
けど、メタプログラミング、DSLの辺りで躓く人って多そう。
SinatraのDSLがどう言う実装になっているのか理解するのに相当時間かかった。
特に、こんなコードがキモだとは、長らく気づかんかった。
class A
puts “OK”
end
Rubyの連中ってのは、「たのしい」だとか、「直感的」とか、「生産性が高い」
とかってよく言う。
けど、メタプログラミング、DSLの辺りで躓く人って多そう。
SinatraのDSLがどう言う実装になっているのか理解するのに相当時間かかった。
特に、こんなコードがキモだとは、長らく気づかんかった。
class A
puts “OK”
end
228デフォルトの名無しさん
2017/09/12(火) 11:06:52.61ID:WW0MtbKa JavaScript でも、関数内の地の文は、実行される
たぶん、Python, Groovy なども同じだろ
たぶん、Python, Groovy なども同じだろ
229デフォルトの名無しさん
2017/09/12(火) 11:11:57.63ID:9jgbEmKh230デフォルトの名無しさん
2017/09/12(火) 11:25:19.54ID:h0iAeYHr > けど、メタプログラミング、DSLの辺りで躓く人って多そう。
その前に自分みたいにオブジェクト指向とか言う暗号が理解できなくてC言語で止まってしまう人もいると思います。
アセンブラからC言語は問題なかったんですけどね…
その前に自分みたいにオブジェクト指向とか言う暗号が理解できなくてC言語で止まってしまう人もいると思います。
アセンブラからC言語は問題なかったんですけどね…
231デフォルトの名無しさん
2017/09/12(火) 11:57:03.55ID:onUD/nnU >>230
オブジェクトのポインタも暗黙の引数として渡される、と割り切ってしまえばとにかく理解はできるはず。
オブジェクト指向だからのこともあるけど、全体像がわかれば、たいして難しいことではないと思う。
オブジェクトのポインタも暗黙の引数として渡される、と割り切ってしまえばとにかく理解はできるはず。
オブジェクト指向だからのこともあるけど、全体像がわかれば、たいして難しいことではないと思う。
232デフォルトの名無しさん
2017/09/12(火) 12:04:12.58ID:WW0MtbKa まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
だから、勉強する順番が、この順になる
この後に、4つの道に分かれる。
1. Groovy, Kotlin
2. C#
3. C++
4. JavaScript
スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
たのしいRuby 第5版、2016
みんなのPython 第4版、2017
だから、勉強する順番が、この順になる
この後に、4つの道に分かれる。
1. Groovy, Kotlin
2. C#
3. C++
4. JavaScript
233デフォルトの名無しさん
2017/09/12(火) 18:53:46.13ID:JOxdLua/ リファクタリング:Rubyエディションを読んだ方がもっと直接的にオブジェクト指向を学べる
リファクタリングと名が付いてるけどオブジェクト指向が何のためにあるのか、源流から把握できるよ
リファクタリングと名が付いてるけどオブジェクト指向が何のためにあるのか、源流から把握できるよ
234210
2017/09/12(火) 23:44:30.69ID:hhSY9FWw >>220
>defで宣言した関数は変数に代入出来ない
defで宣言できるのはメソッドであって関数ではない
またRubyには(関数型言語における)関数は存在しない
基本に立ち返って、計算モデルという視点でメソッドと関数との違いを
学習したほうがいいと思われる
また関数型言語の流行を見て適当な実装したのはナイスジョーク言語(>>209)だよ
・クロージャって何がいいの?
http://mevius.2ch.net/test/read.cgi/tech/1415419907/197
このカキコをまとめると、君の文章スタイルを真似れば:
lambda式の本体には式しか書けない。文を書きたい場合はdefで名前付きの関数を
宣言する必要がある。この行き当たりばったりな仕様は関数型プログラミングを
扱える言語が流行ってきたため「ば、pythonでもできるし!」と言いたいがために
適当に実装したためである、
ってスパっと言えるね
少なくとも、Rubyはその誕生の時からすでにオブジェクト指向と関数型を融合した
マルチパラダイム言語として設計された
・推薦図書/必読書のためのスレッド 74
http://peace.2ch.net/test/read.cgi/tech/1409526637/857
手続き型言語として誕生し後から流行を追ってオブジェクト指向と関数型を
行き当たりばったりで適当に実装したナイスジョーク言語とRubyを一緒にしないでね!!(棒
>defで宣言した関数は変数に代入出来ない
defで宣言できるのはメソッドであって関数ではない
またRubyには(関数型言語における)関数は存在しない
基本に立ち返って、計算モデルという視点でメソッドと関数との違いを
学習したほうがいいと思われる
また関数型言語の流行を見て適当な実装したのはナイスジョーク言語(>>209)だよ
・クロージャって何がいいの?
http://mevius.2ch.net/test/read.cgi/tech/1415419907/197
このカキコをまとめると、君の文章スタイルを真似れば:
lambda式の本体には式しか書けない。文を書きたい場合はdefで名前付きの関数を
宣言する必要がある。この行き当たりばったりな仕様は関数型プログラミングを
扱える言語が流行ってきたため「ば、pythonでもできるし!」と言いたいがために
適当に実装したためである、
ってスパっと言えるね
少なくとも、Rubyはその誕生の時からすでにオブジェクト指向と関数型を融合した
マルチパラダイム言語として設計された
・推薦図書/必読書のためのスレッド 74
http://peace.2ch.net/test/read.cgi/tech/1409526637/857
手続き型言語として誕生し後から流行を追ってオブジェクト指向と関数型を
行き当たりばったりで適当に実装したナイスジョーク言語とRubyを一緒にしないでね!!(棒
235デフォルトの名無しさん
2017/09/13(水) 00:11:46.24ID:ZSgQvDIS >>234
>defで宣言できるのはメソッドであって関数ではない
この難癖は頭おかしい。
トップレベルで定義したメソッドを関数と呼ぶのは便利な方便じゃないか。
そんなこと言ったらいちいち演算子もメソッドと言わなければならないのか?
たしかまつもと著の初期の書籍でも
関数を定義してみましょう→実はRubyでは関数はメソッドとして〜という流れだったはず。たしか。たぶん。
>defで宣言できるのはメソッドであって関数ではない
この難癖は頭おかしい。
トップレベルで定義したメソッドを関数と呼ぶのは便利な方便じゃないか。
そんなこと言ったらいちいち演算子もメソッドと言わなければならないのか?
たしかまつもと著の初期の書籍でも
関数を定義してみましょう→実はRubyでは関数はメソッドとして〜という流れだったはず。たしか。たぶん。
236デフォルトの名無しさん
2017/09/13(水) 00:40:14.46ID:S8v0D06m そしたらブロックローカル変数という
糞ダサいものは何故必要になったのですか?
やっぱり変数宣言は必要だったのですか?
糞ダサいものは何故必要になったのですか?
やっぱり変数宣言は必要だったのですか?
237デフォルトの名無しさん
2017/09/13(水) 00:43:26.25ID:n1InxPaY238デフォルトの名無しさん
2017/09/13(水) 04:43:32.45ID:OIAQviv2239デフォルトの名無しさん
2017/09/13(水) 06:57:22.00ID:QnpmdH9u 鏡の自分と話していないでいい加減リアルで話し相手を見つけろ
いつまでごっご遊びする気だ?
いつまでごっご遊びする気だ?
240デフォルトの名無しさん
2017/09/14(木) 05:43:14.25ID:MKn91q5M >>232
スッキリわかる Java入門 第2版
658ページ
すごいなぁ。
俺が良かったのは、Java流オブジェクト志向入門、この薄い本でOOPに合点が言った。
それから、Master Mind of Programming.
OOPのキモは、差分プログラミング。
スッキリわかる Java入門 第2版
658ページ
すごいなぁ。
俺が良かったのは、Java流オブジェクト志向入門、この薄い本でOOPに合点が言った。
それから、Master Mind of Programming.
OOPのキモは、差分プログラミング。
241デフォルトの名無しさん
2017/09/14(木) 05:49:47.26ID:CERdfB5z オブジェクト指向の初期に言われてた
(継承による)差分プログラミングは
今はOOの主流でない
(継承による)差分プログラミングは
今はOOの主流でない
242デフォルトの名無しさん
2017/09/14(木) 06:39:33.22ID:DHSnOET6 主流ではないどころか現代では継承による差分プログラミングはクラスの典型的な間違った使い方であるというのが一般的な認識だよね
あまりにも時代錯誤が過ぎる
あまりにも時代錯誤が過ぎる
243デフォルトの名無しさん
2017/09/14(木) 09:15:38.86ID:RGoLM/1P class Product < ApplicationRecord
end
この継承だけで、
p = Product.new
p.name = “Some Book”
と書き始める事ができるが!
これは、差分プログラミングでは無いのか?
end
この継承だけで、
p = Product.new
p.name = “Some Book”
と書き始める事ができるが!
これは、差分プログラミングでは無いのか?
244デフォルトの名無しさん
2017/09/14(木) 11:25:35.14ID:mzgiopKB 構ってほしいなら他スレいけ
245デフォルトの名無しさん
2017/09/14(木) 13:23:53.04ID:hmZWacm7 今のオブジェクト指向って差分は嫌われてんのか。
しらんかった。
しらんかった。
246デフォルトの名無しさん
2017/09/14(木) 13:45:04.43ID:emC4w7HW 差分プログラミングは継承元のクラスの細かな仕様
特に処理の流れのようなものまでしっかり把握してないと
破綻するからな
複雑な動きをするクラスの一部だけ上書きして破綻なく動かすのは難しい
特に処理の流れのようなものまでしっかり把握してないと
破綻するからな
複雑な動きをするクラスの一部だけ上書きして破綻なく動かすのは難しい
247デフォルトの名無しさん
2017/09/14(木) 13:58:16.02ID:hmZWacm7 オブジェクト指向って継承とか差分とかをなくしたら
それって関数型プログラミングじゃないのか?
それって関数型プログラミングじゃないのか?
248デフォルトの名無しさん
2017/09/14(木) 14:04:35.89ID:QnR6ews3 差分と増分は違う。
一般的に差分プログラミングというと、243の例のように元あるものに足するだけではなく
上書きして元あったものを「引く」ことを伴うやり方を指す。
これは大抵の場合、論理的なis-A関係を無視した実装継承になる。
一般的に差分プログラミングというと、243の例のように元あるものに足するだけではなく
上書きして元あったものを「引く」ことを伴うやり方を指す。
これは大抵の場合、論理的なis-A関係を無視した実装継承になる。
249デフォルトの名無しさん
2017/09/14(木) 14:32:09.28ID:8Cslzo3n 何がどうダメでどうするのがより良いことなのか書いてくれ
250デフォルトの名無しさん
2017/09/14(木) 14:44:12.14ID:RGoLM/1P251デフォルトの名無しさん
2017/09/14(木) 18:45:33.64ID:MKohVal2 >>246
そうでもない
そうでもない
252デフォルトの名無しさん
2017/09/14(木) 19:46:31.21ID:QnR6ews3 >>249
簡単な話だよ
クラスを継承するとき、スーパークラスの実装を潰してはいけない
常に増分の形になるようにする
たとえばクラスAのメソッドaの動作を変更したいとき、サブクラスBでaをオーバーライドして置換えてしまうのが継承による差分プログラミング
そういう場合、AとBを共通のスーパークラスCを継承するようにして、Cのaは空にしておき、A, Bそれぞれでaを実装するのが一つの正解
簡単な話だよ
クラスを継承するとき、スーパークラスの実装を潰してはいけない
常に増分の形になるようにする
たとえばクラスAのメソッドaの動作を変更したいとき、サブクラスBでaをオーバーライドして置換えてしまうのが継承による差分プログラミング
そういう場合、AとBを共通のスーパークラスCを継承するようにして、Cのaは空にしておき、A, Bそれぞれでaを実装するのが一つの正解
253デフォルトの名無しさん
2017/09/14(木) 20:29:04.75ID:emC4w7HW 多分意味が無いと思う
物分かりが良い人だったら今時Rubyなど触ってるわけないし
そのなかでも特別アレな人がここに集まっているわけだし
こういう人に何言ったって、なぁ・・・
そりゃ、聞く気があって向上心があるならRubyなんか触ってないって
差分プログラミングがあまり良くないって話は随分昔からあって
他スレッドだと、それを言っても、何今更当言ってるんだ?
となるだけなんだが、こんなことに食って掛かるやつがいるってのがね
さすがのRubyなんだわ
冗談みたいな話だけど、マジで
Rubyは今の流行りと全く反対の方向に全速力な言語だから
こういう言語を好む人に常識を解いても無駄なんだわ
物分かりが良い人だったら今時Rubyなど触ってるわけないし
そのなかでも特別アレな人がここに集まっているわけだし
こういう人に何言ったって、なぁ・・・
そりゃ、聞く気があって向上心があるならRubyなんか触ってないって
差分プログラミングがあまり良くないって話は随分昔からあって
他スレッドだと、それを言っても、何今更当言ってるんだ?
となるだけなんだが、こんなことに食って掛かるやつがいるってのがね
さすがのRubyなんだわ
冗談みたいな話だけど、マジで
Rubyは今の流行りと全く反対の方向に全速力な言語だから
こういう言語を好む人に常識を解いても無駄なんだわ
254デフォルトの名無しさん
2017/09/14(木) 20:33:41.31ID:TqGAiQtg はいはいNGNG
255デフォルトの名無しさん
2017/09/14(木) 20:36:29.79ID:DHSnOET6 まあ既存のクラスのメソッドを置き換えたりする醜悪なモンキーパッチをクールだと有難がってる連中が沢山いるくらいだから、
継承を使った差分プログラミングなんて可愛いもんだ
継承を使った差分プログラミングなんて可愛いもんだ
256デフォルトの名無しさん
2017/09/14(木) 20:50:14.91ID:i72uwPMW257デフォルトの名無しさん
2017/09/14(木) 20:56:24.98ID:DHSnOET6 念のためイメージしやすいように具体例を出しておこう。
何らかの処理結果をHTTPで出力するHTTPPublisherクラスがあったとしよう。
これをHTTPではなくFTPで出力したくなったが、最終的に送信するところ以外は実装は全て同一だ。
そこで、HTTPPublisherクラスを継承して最終的な送信のところだけをオーバーライドしたFTPPublisherクラスを作った。
その結果、FTPPublisher is HTTPPublisherという継承関係になった。
これが継承による差分プログラミングだ。何がおかしいか考えてみよう。
何らかの処理結果をHTTPで出力するHTTPPublisherクラスがあったとしよう。
これをHTTPではなくFTPで出力したくなったが、最終的に送信するところ以外は実装は全て同一だ。
そこで、HTTPPublisherクラスを継承して最終的な送信のところだけをオーバーライドしたFTPPublisherクラスを作った。
その結果、FTPPublisher is HTTPPublisherという継承関係になった。
これが継承による差分プログラミングだ。何がおかしいか考えてみよう。
258デフォルトの名無しさん
2017/09/14(木) 20:57:42.86ID:i72uwPMW つまり、ダックタイピング最高、ということか
259デフォルトの名無しさん
2017/09/14(木) 21:08:29.85ID:emC4w7HW260デフォルトの名無しさん
2017/09/14(木) 22:12:26.20ID:i72uwPMW261デフォルトの名無しさん
2017/09/14(木) 22:17:27.79ID:mzgiopKB 荒らしはまーた嘘ついちゃったのか
262デフォルトの名無しさん
2017/09/14(木) 23:07:38.38ID:z8360qWk ガチ初心者で申し訳ないっす。
rake db:migrate:reset
rake db:seed
railsで作るサイトに上を実行してくれるボタンを作ることって出来ますか?
rake db:migrate:reset
rake db:seed
railsで作るサイトに上を実行してくれるボタンを作ることって出来ますか?
263デフォルトの名無しさん
2017/09/15(金) 00:06:02.35ID:pcdb6BZK264デフォルトの名無しさん
2017/09/15(金) 01:13:28.42ID:HyLcEmwG >>262
よくわからんけど、Ruby内からバッククォート文で実行させれば良いんじゃない?
よくわからんけど、Ruby内からバッククォート文で実行させれば良いんじゃない?
265デフォルトの名無しさん
2017/09/15(金) 02:50:07.52ID:NqjvejJe >>264
ありがとうございました!感謝感激雨あられっす
ありがとうございました!感謝感激雨あられっす
266デフォルトの名無しさん
2017/09/15(金) 05:52:12.67ID:gy747Xnp 差分問題は継承より委譲、で終わり
267デフォルトの名無しさん
2017/09/15(金) 13:17:19.48ID:M6zHVajf >そりゃ、聞く気があって向上心があるならRubyなんか触ってないって
今年一番説得力あるレスだった
今年一番説得力あるレスだった
268デフォルトの名無しさん
2017/09/15(金) 21:25:27.63ID:gy747Xnp まあRubyは使いやすくて楽だからな
Lispみたいな言語だと
向上心や忍耐力が必要とされる
Lispみたいな言語だと
向上心や忍耐力が必要とされる
269デフォルトの名無しさん
2017/09/16(土) 00:44:23.41ID:54wKV8j0 手軽だし、便利だし、どこにでも手が届くわりに、細部まで言語として背景や地盤が整備されてる
確かに、使える人が増える事はあっても減る事は無い言語だ
確かに、使える人が増える事はあっても減る事は無い言語だ
270デフォルトの名無しさん
2017/09/16(土) 03:15:44.04ID:cRp93fnk >>269
俺、その背景や地盤ってのを理解するのに、めっちゃ時間かかった。
俺、その背景や地盤ってのを理解するのに、めっちゃ時間かかった。
271デフォルトの名無しさん
2017/09/16(土) 07:19:19.83ID:ja70x9oy Gradle は、Groovy だけど、
vagrant, chef, SASS とか、ツールを作る時は、真っ先に、Ruby が選ばれる。
他の言語は、Rubyよりも、2年ぐらい遅れる
この2つは、DSL も作りやすい。
さらに、Groovyには、JavaVM が必要だけど、Rubyには必要ない
おまけに、シェルスクリプトの代わりにもなるし、
PowerShell よりも、プログラミングしやすい
vagrant, chef, SASS とか、ツールを作る時は、真っ先に、Ruby が選ばれる。
他の言語は、Rubyよりも、2年ぐらい遅れる
この2つは、DSL も作りやすい。
さらに、Groovyには、JavaVM が必要だけど、Rubyには必要ない
おまけに、シェルスクリプトの代わりにもなるし、
PowerShell よりも、プログラミングしやすい
272デフォルトの名無しさん
2017/09/16(土) 07:28:00.02ID:AcW1bn43 >>271
>ツールを作る時は、真っ先に、Ruby が選ばれる
おっそうだな
静的サイトジェネレータならJekillとか
Rubyはプロトタイプを早く作るのに向いてるから
新ジャンルを開拓するのにふさわしい
>ツールを作る時は、真っ先に、Ruby が選ばれる
おっそうだな
静的サイトジェネレータならJekillとか
Rubyはプロトタイプを早く作るのに向いてるから
新ジャンルを開拓するのにふさわしい
273デフォルトの名無しさん
2017/09/16(土) 09:14:50.48ID:dauRpkAs そう感じるのは君がRuby村の中から見える世界しか見てないからだ
少なくとも今はRubyが最先端とはとてもじゃないが言えないよ
少なくとも今はRubyが最先端とはとてもじゃないが言えないよ
274デフォルトの名無しさん
2017/09/16(土) 11:26:43.15ID:54wKV8j0 アンチって平然と人を騙そうとするよな
275デフォルトの名無しさん
2017/09/16(土) 11:33:09.75ID:DEccgWHW276デフォルトの名無しさん
2017/09/16(土) 11:45:25.97ID:gf/ZkNkm Railsと違ってRuby自体の後方互換性はかなり高いよ。1.8や1.9で作ったコードも今もそのまま問題なく使えてる。使えなくなる機能があっても数バージョン前から警告出るから対応しやすい。
277デフォルトの名無しさん
2017/09/16(土) 11:50:32.56ID:54wKV8j0 rbenvで全ver入れてOK
278デフォルトの名無しさん
2017/09/16(土) 15:03:52.29ID:cRp93fnk >>273
Rubyは最先端ではない。
首相は獣医学科設置に関与してない。
首相は、国有地を森友学園へ売却するよう指示してない。
これらは、証明できない。
ツールを作る時の選択肢にRubyがある。
これらの証明は例を示せば良い。
例:vagrant, chef, SASS
Rubyは最先端ではない。
首相は獣医学科設置に関与してない。
首相は、国有地を森友学園へ売却するよう指示してない。
これらは、証明できない。
ツールを作る時の選択肢にRubyがある。
これらの証明は例を示せば良い。
例:vagrant, chef, SASS
279デフォルトの名無しさん
2017/09/16(土) 16:48:46.12ID:ZCzFTInQ >>270
おまえにrubyは早すぎる
おまえにrubyは早すぎる
280デフォルトの名無しさん
2017/09/16(土) 17:39:16.46ID:ja70x9oy 自分がツールを作る時に、シェルスクリプトは論外だろ。
PowerShell は、補完が効くけど、
クラスを使うような、本格的なプログラミングは出来ない
Kotlin は大掛かりで、厳格なものを作れるけど、
静的チェックが厳しすぎるような気もする
結局、Groovy, Ruby が手軽。
DSL も作りやすい
Haxe も、様々な言語に変換できるから、面白そうだけど
PowerShell は、補完が効くけど、
クラスを使うような、本格的なプログラミングは出来ない
Kotlin は大掛かりで、厳格なものを作れるけど、
静的チェックが厳しすぎるような気もする
結局、Groovy, Ruby が手軽。
DSL も作りやすい
Haxe も、様々な言語に変換できるから、面白そうだけど
281デフォルトの名無しさん
2017/09/16(土) 17:58:02.30ID:3y963gmF PowerShellはクラス作れるぞ?
そんなんだからアンチに馬鹿にされるんだよ
そんなんだからアンチに馬鹿にされるんだよ
282デフォルトの名無しさん
2017/09/16(土) 18:03:45.86ID:3y963gmF あと静的チェックが厳しすぎるというのも意味不明だな
Rubyだって想定してる型を間違えたら落ちるかバグるだろう
型書くのが面倒というならわかるけど、静的チェックが緩いこと自体にメリットはない
Rubyだって想定してる型を間違えたら落ちるかバグるだろう
型書くのが面倒というならわかるけど、静的チェックが緩いこと自体にメリットはない
283デフォルトの名無しさん
2017/09/16(土) 18:08:25.83ID:iZTbrLgf 静的チェックをするということは、Crystal みたいな方向性になるのかな
284デフォルトの名無しさん
2017/09/16(土) 20:35:26.41ID:AcW1bn43285デフォルトの名無しさん
2017/09/16(土) 20:37:44.80ID:AcW1bn43286デフォルトの名無しさん
2017/09/16(土) 20:38:28.09ID:PUFjteak >>282
>静的チェックが緩いこと自体にメリットはない
たとえばC言語が標準ライブラリ関数である printf を
容易に実装できたのは、C言語の「静的チェックが緩い」という
特性がメリットになった実例だろ
>静的チェックが緩いこと自体にメリットはない
たとえばC言語が標準ライブラリ関数である printf を
容易に実装できたのは、C言語の「静的チェックが緩い」という
特性がメリットになった実例だろ
287デフォルトの名無しさん
2017/09/16(土) 20:43:55.95ID:54wKV8j0 アンチはまた自演で誘導しようとしてんのか
ほんと嘘をついて騙すのが好きだな
ほんと嘘をついて騙すのが好きだな
288デフォルトの名無しさん
2017/09/16(土) 21:02:57.30ID:PUFjteak >>280
ためしに「Kotlin dsl」でググって見たら最初にヒットした記事
・KotlinでイケてるDSLを作る
http://qiita.com/kikuchy/items/7c8893c4e7e11dafdb6c
この記事では DSL を作るのに有益な Kotlin の言語機能を
6つ紹介しているけど、先頭の4つは Ruby と共通しているね
・拡張関数
―> 既存のクラスへ後からメソッド定義を追加できる
・引数の最後がラムダ式であれば、メソッド呼び出しの …(略)
―> Ruby の「ブロック付きメソッド呼び出し」
・ラムダ式のreturnは省略可能
―> もちろん Ruby もメソッド/ブロックの最後に書くreturnは省略できる
・thisは省略可能
―> Ruby も同じく
特に3つ目の「ブロック付きメソッド呼び出し」は Apple の新世代言語である
Swift でも「Tailing Closure」という名前で導入されている
・クロージャって何がいいの?
http://mevius.2ch.net/test/read.cgi/tech/1415419907/262
世界は Ruby 良さに気付いている、そして Ruby の良き特性を取り込んだ
新世代言語が次々に登場している(>>283 の Crystal、他には Elixir もある)
ためしに「Kotlin dsl」でググって見たら最初にヒットした記事
・KotlinでイケてるDSLを作る
http://qiita.com/kikuchy/items/7c8893c4e7e11dafdb6c
この記事では DSL を作るのに有益な Kotlin の言語機能を
6つ紹介しているけど、先頭の4つは Ruby と共通しているね
・拡張関数
―> 既存のクラスへ後からメソッド定義を追加できる
・引数の最後がラムダ式であれば、メソッド呼び出しの …(略)
―> Ruby の「ブロック付きメソッド呼び出し」
・ラムダ式のreturnは省略可能
―> もちろん Ruby もメソッド/ブロックの最後に書くreturnは省略できる
・thisは省略可能
―> Ruby も同じく
特に3つ目の「ブロック付きメソッド呼び出し」は Apple の新世代言語である
Swift でも「Tailing Closure」という名前で導入されている
・クロージャって何がいいの?
http://mevius.2ch.net/test/read.cgi/tech/1415419907/262
世界は Ruby 良さに気付いている、そして Ruby の良き特性を取り込んだ
新世代言語が次々に登場している(>>283 の Crystal、他には Elixir もある)
289デフォルトの名無しさん
2017/09/16(土) 23:13:55.67ID:+qyS/XRX 日々アンチっぽいと感じる書き込みがあるかもしれないが
書き込んでいる本人たちは、そんな気は決してない
これは皆さんに末永くRubyを使ってもらおうと思ってしていること
未だなおRubyが好きな人に、何言っても回心しないのは分かり切ってるから
逆に強化していこうって方向なわけ
書き込んでいる本人たちは、そんな気は決してない
これは皆さんに末永くRubyを使ってもらおうと思ってしていること
未だなおRubyが好きな人に、何言っても回心しないのは分かり切ってるから
逆に強化していこうって方向なわけ
290デフォルトの名無しさん
2017/09/16(土) 23:18:50.04ID:+qyS/XRX たとえばシステムにsafeな部分とunsafeな部分があったら
unsafeな部分は一か所にまとめて管理したいって考えるだろう
スラム街みたいなもんだな
別にこの世は俺の管轄するシステムでも何でもないから
どうでも良いっちゃどうでも良いんだが
2chにも隔離スレという文化があるし
似たような感覚ではある
unsafeな部分は一か所にまとめて管理したいって考えるだろう
スラム街みたいなもんだな
別にこの世は俺の管轄するシステムでも何でもないから
どうでも良いっちゃどうでも良いんだが
2chにも隔離スレという文化があるし
似たような感覚ではある
291デフォルトの名無しさん
2017/09/17(日) 03:18:56.25ID:tx3RW6Nz 嘘付いてスレを妨害した荒らしのレスが上の方にあるじゃん
292デフォルトの名無しさん
2017/09/17(日) 05:11:26.55ID:7k/HywsS Rails5.1.4を使用しています
アホしてsendカラムを含んだテーブルをmigrateしたところ、あちこちでエラーが発生するようになりました。
すぐにロールバックし、DBからはカラムが消えたことを確認しましたが、ApplicationRecordを継承したクラスではいまだに生きているようで、症状が改善されません。
ロールバック以外にできることがあれば、教えてください。
アホしてsendカラムを含んだテーブルをmigrateしたところ、あちこちでエラーが発生するようになりました。
すぐにロールバックし、DBからはカラムが消えたことを確認しましたが、ApplicationRecordを継承したクラスではいまだに生きているようで、症状が改善されません。
ロールバック以外にできることがあれば、教えてください。
293デフォルトの名無しさん
2017/09/17(日) 13:22:15.36ID:EJ9y/eYt294デフォルトの名無しさん
2017/09/17(日) 13:27:05.45ID:iyMogwhx エスパーするが
Rubyではメソッド名が同じであれば同じような振る舞いをします
そのことはRubyで保証されているので
プログラマは振る舞いについて何も考えなくてよいです
メソッド名が同じなら、同じような振る舞いをします
なのでそうしてください
そのあと言語仕様から変数宣言を無くして代入で代用してください
一見すると「変数宣言」と「代入」の区別がつかなくなるように思えるかもしれませんが
変数宣言が無くなるので変数のスコープのことを考えなくてよくなります
これらはRubyでサポートされているので、そのようにしてください
Rubyではメソッド名が同じであれば同じような振る舞いをします
そのことはRubyで保証されているので
プログラマは振る舞いについて何も考えなくてよいです
メソッド名が同じなら、同じような振る舞いをします
なのでそうしてください
そのあと言語仕様から変数宣言を無くして代入で代用してください
一見すると「変数宣言」と「代入」の区別がつかなくなるように思えるかもしれませんが
変数宣言が無くなるので変数のスコープのことを考えなくてよくなります
これらはRubyでサポートされているので、そのようにしてください
295デフォルトの名無しさん
2017/09/17(日) 13:46:03.46ID:rqcmn5Um 荒らしのコピペまじウゼー
296デフォルトの名無しさん
2017/09/17(日) 19:33:50.41ID:vAwE04IK >>292
Rails の質問や話題はWebProg板のRailsスレへ:
・【RoR】Ruby on Rails Part20
http://medaka.2ch.net/test/read.cgi/php/1474523013/
Rails の質問や話題はWebProg板のRailsスレへ:
・【RoR】Ruby on Rails Part20
http://medaka.2ch.net/test/read.cgi/php/1474523013/
297デフォルトの名無しさん
2017/09/17(日) 20:54:55.57ID:vAwE04IK >>294
> Pythonではメソッド名が同じであれば同じような振る舞いをします
> そのことはPythonで保証されているので
> プログラマは振る舞いについて何も考えなくてよいです
> メソッド名が同じなら、同じような振る舞いをします
> なのでそうしてください
> そのあと言語仕様から変数宣言を無くして代入で代用してください
> 一見すると「変数宣言」と「代入」の区別がつかなくなるように思えるかもしれませんが
> 変数宣言が無くなるので変数のスコープのことを考えなくてよくなります
> これらはPythonでサポートされているので、そのようにしてください
試しに Ruby を Python に変えて見たけど、何ら違和感が無い
そもそも「オブジェクト指向+動的型付け+手続き型言語」という特性を備えた
あらゆる言語(Python/JavaScript/Perl/PHP..etc)に通じる単純明快な事柄だね
いったいぜんたい >>294 は何を言いたいのだろうか?
あえて >>294 の主旨をエスパーすると:
「私はプログラミングを習い始めたばかりの初心者です、よろしくお願いします」
ってことではなかろうか
> Pythonではメソッド名が同じであれば同じような振る舞いをします
> そのことはPythonで保証されているので
> プログラマは振る舞いについて何も考えなくてよいです
> メソッド名が同じなら、同じような振る舞いをします
> なのでそうしてください
> そのあと言語仕様から変数宣言を無くして代入で代用してください
> 一見すると「変数宣言」と「代入」の区別がつかなくなるように思えるかもしれませんが
> 変数宣言が無くなるので変数のスコープのことを考えなくてよくなります
> これらはPythonでサポートされているので、そのようにしてください
試しに Ruby を Python に変えて見たけど、何ら違和感が無い
そもそも「オブジェクト指向+動的型付け+手続き型言語」という特性を備えた
あらゆる言語(Python/JavaScript/Perl/PHP..etc)に通じる単純明快な事柄だね
いったいぜんたい >>294 は何を言いたいのだろうか?
あえて >>294 の主旨をエスパーすると:
「私はプログラミングを習い始めたばかりの初心者です、よろしくお願いします」
ってことではなかろうか
298デフォルトの名無しさん
2017/09/17(日) 21:59:40.46ID:iyMogwhx >試しに Ruby を Python に変えて見たけど、何ら違和感が無い
それで何が問題?
あと、Pythonは型アノテーションを取り入れてるから
過去の過ちを修正していこうということだろうね
一方Rubyは逆走中
失敗しちゃったから、もういっそ、突き抜けちゃおう、という勢い
それで何が問題?
あと、Pythonは型アノテーションを取り入れてるから
過去の過ちを修正していこうということだろうね
一方Rubyは逆走中
失敗しちゃったから、もういっそ、突き抜けちゃおう、という勢い
299デフォルトの名無しさん
2017/09/17(日) 22:05:37.68ID:G7neoTxj Ruby 以外の動的言語は、関数の外で宣言した変数が、
関数の内側で、使えるよな
つまり、関数スコープが厳格ではない
Rubyで、変数宣言が無いのは、関数スコープが厳格だからかな?
関数の内側で、使えるよな
つまり、関数スコープが厳格ではない
Rubyで、変数宣言が無いのは、関数スコープが厳格だからかな?
300デフォルトの名無しさん
2017/09/17(日) 22:15:19.17ID:5DAGa3Dm >>299
Rubyはオブジェクト指向言語なので
カプセル化するために基本的に
他のオブジェクトの変数をそのまま使わない
使う必要がある場合は引数またはアクセサを通して使う
またグローバル変数も使えるが非推奨
Rubyはオブジェクト指向言語なので
カプセル化するために基本的に
他のオブジェクトの変数をそのまま使わない
使う必要がある場合は引数またはアクセサを通して使う
またグローバル変数も使えるが非推奨
301デフォルトの名無しさん
2017/09/17(日) 22:58:55.88ID:iyMogwhx |x; foo|
↑の foo のような、変素宣言と変わらない素晴らしい存在と出会うことが出来ます
ちなみに python にも nonlocal という素晴らしいお友達が居ます
変数宣言を無くして代入で代用するアイデアは本当にうまく行きます
「@」に出会うことが出来るし
レキシカルスコープについて考えると夜も眠れないほどです
↑の foo のような、変素宣言と変わらない素晴らしい存在と出会うことが出来ます
ちなみに python にも nonlocal という素晴らしいお友達が居ます
変数宣言を無くして代入で代用するアイデアは本当にうまく行きます
「@」に出会うことが出来るし
レキシカルスコープについて考えると夜も眠れないほどです
302デフォルトの名無しさん
2017/09/17(日) 23:06:07.39ID:G7neoTxj Ruby のブロック(クロージャ内の)変数だろ
python のnonlocal は、いらんわ。
親のスコープへ、遡って探しに行く、変数だよね
python のnonlocal は、いらんわ。
親のスコープへ、遡って探しに行く、変数だよね
303デフォルトの名無しさん
2017/09/17(日) 23:20:45.74ID:vAwE04IK >>298
>過去の過ちを修正していこうということだろうね
その Python の過ちがあまりに低レベルな訳だが:
(1) print 機能が文として実装され、ライブラリとして分離されていなかった(>>209)
すでに1970年代に登場したC言語では、
print は標準ライブラリ関数として言語仕様から
分離していたにもかかわらず
(2) 整数の割り算という極めて基礎的な計算仕様が安定していない
・割り算の扱い – Python2からPython3への変更 –
http://www.trusted-design.net/archives/455/
(3) 関数型言語ブームを追って行き当たりばったりで適当に実装したおかげで、
ラムダ式の本体には式しか書けない
改善要望は過去から存在したが、作者のGuid氏はGuido氏は
「複数行のラムダは解けないパズル(unsolvable puzzle)」と匙を投げた(>>234)
(1)と(2)はようやく Python3 で修正を終えたけど、その代償として
「後方互換性の断絶」という事態を招いた
(3) の「解けないパズル」に至っては Python3 でも修正の目処が立たず先送り
おそらく Python4 で修正して「後方互換性の断絶」が再現されることになる
つまり Python における「過去の過ちの修正」の歴史って、こういうこと
繰り返すけど、Python は過ちのレベルがあまりに初歩的すぎるのよ
>過去の過ちを修正していこうということだろうね
その Python の過ちがあまりに低レベルな訳だが:
(1) print 機能が文として実装され、ライブラリとして分離されていなかった(>>209)
すでに1970年代に登場したC言語では、
print は標準ライブラリ関数として言語仕様から
分離していたにもかかわらず
(2) 整数の割り算という極めて基礎的な計算仕様が安定していない
・割り算の扱い – Python2からPython3への変更 –
http://www.trusted-design.net/archives/455/
(3) 関数型言語ブームを追って行き当たりばったりで適当に実装したおかげで、
ラムダ式の本体には式しか書けない
改善要望は過去から存在したが、作者のGuid氏はGuido氏は
「複数行のラムダは解けないパズル(unsolvable puzzle)」と匙を投げた(>>234)
(1)と(2)はようやく Python3 で修正を終えたけど、その代償として
「後方互換性の断絶」という事態を招いた
(3) の「解けないパズル」に至っては Python3 でも修正の目処が立たず先送り
おそらく Python4 で修正して「後方互換性の断絶」が再現されることになる
つまり Python における「過去の過ちの修正」の歴史って、こういうこと
繰り返すけど、Python は過ちのレベルがあまりに初歩的すぎるのよ
304デフォルトの名無しさん
2017/09/17(日) 23:28:50.19ID:vAwE04IK >>299
>Ruby 以外の動的言語は、関数の外で宣言した変数が、
>関数の内側で、使えるよな
いや、そもそも Ruby ではメソッド定義の中で入れ子になった
メソッドは定義できないよ
これは Smalltalk や Java といった最初からオブジェクト指向言語として
設計された仲間に共通する特性
>Rubyで、変数宣言が無いのは、関数スコープが厳格だからかな?
いや、メソッドの入れ子定義を禁止したことで、スコープの定義が簡潔なだけ
というか、Python や JavaScript のような関数の入れ子定義ができる
動的型付け言語でも、関数宣言は必要無いから、何を言いたいのだろうか?
>Ruby 以外の動的言語は、関数の外で宣言した変数が、
>関数の内側で、使えるよな
いや、そもそも Ruby ではメソッド定義の中で入れ子になった
メソッドは定義できないよ
これは Smalltalk や Java といった最初からオブジェクト指向言語として
設計された仲間に共通する特性
>Rubyで、変数宣言が無いのは、関数スコープが厳格だからかな?
いや、メソッドの入れ子定義を禁止したことで、スコープの定義が簡潔なだけ
というか、Python や JavaScript のような関数の入れ子定義ができる
動的型付け言語でも、関数宣言は必要無いから、何を言いたいのだろうか?
305デフォルトの名無しさん
2017/09/17(日) 23:36:32.98ID:vAwE04IK306デフォルトの名無しさん
2017/09/17(日) 23:54:56.42ID:vAwE04IK >>304
>動的型付け言語でも、関数宣言は必要無いから、何を言いたいのだろうか?
最後の文章を自己レスで訂正:
X:関数宣言は必要無いから、
O:変数宣言は必須では無いから、
補足しておくと:
・JavaScript は予約語 var で始まる変数宣言の構文があるけど、
省略すれば暗黙的に宣言される
・Python の型アノーテーションは、その名アノーテーションとあるように
コメント扱いだから変数宣言の意味とは全く異なる存在であるし、
当たり前だけど省略できる
>動的型付け言語でも、関数宣言は必要無いから、何を言いたいのだろうか?
最後の文章を自己レスで訂正:
X:関数宣言は必要無いから、
O:変数宣言は必須では無いから、
補足しておくと:
・JavaScript は予約語 var で始まる変数宣言の構文があるけど、
省略すれば暗黙的に宣言される
・Python の型アノーテーションは、その名アノーテーションとあるように
コメント扱いだから変数宣言の意味とは全く異なる存在であるし、
当たり前だけど省略できる
307デフォルトの名無しさん
2017/09/18(月) 00:24:39.32ID:Rs/BRyvp > Ruby:
> lambda { |foo| …… }
ではなく
Ruby:
lambda { |x; foo| …… }
この仮引数ではない余計な「foo」の事ですよ
明らかに浮いてますね、変ですね
何なんですかね、このfoo
変数宣言を代入で代用するアイデアは本当に素晴らしいですね
>(2) 整数の割り算という極めて基礎的な計算仕様が安定していない
http://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/
Ruby: それはstdlibが搭載されているモジュールをrequireすると、
整数割り算の動き方に影響を与えてしまう言語。 @tomdale
> lambda { |foo| …… }
ではなく
Ruby:
lambda { |x; foo| …… }
この仮引数ではない余計な「foo」の事ですよ
明らかに浮いてますね、変ですね
何なんですかね、このfoo
変数宣言を代入で代用するアイデアは本当に素晴らしいですね
>(2) 整数の割り算という極めて基礎的な計算仕様が安定していない
http://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/
Ruby: それはstdlibが搭載されているモジュールをrequireすると、
整数割り算の動き方に影響を与えてしまう言語。 @tomdale
308デフォルトの名無しさん
2017/09/18(月) 01:38:17.76ID:+b1AQYPX309デフォルトの名無しさん
2017/09/18(月) 02:48:06.01ID:nAoTSCTK310デフォルトの名無しさん
2017/09/18(月) 04:01:15.69ID:rETRD+xz lambda { |x; foo| …… }
ブロック(クロージャ内の)変数として、使いたい場合、
わざと、foo に代入しない
JavaScript でも、undefined が予約語ではないから、
わざと引数に代入せずに、undefined を作る方法がある
ブロック(クロージャ内の)変数として、使いたい場合、
わざと、foo に代入しない
JavaScript でも、undefined が予約語ではないから、
わざと引数に代入せずに、undefined を作る方法がある
311デフォルトの名無しさん
2017/09/18(月) 08:11:23.91ID:vEKmFrOo 糞自演でスレを荒らすなよ屑
312デフォルトの名無しさん
2017/09/18(月) 09:16:48.21ID:nAoTSCTK >>310
fooに代入するって何?
fooに代入するって何?
313デフォルトの名無しさん
2017/09/18(月) 09:47:51.23ID:rETRD+xz X だけに代入して、foo には何も代入しなければよい
そうすれば、foo は、ブロック内だけのローカルスコープを持つ、
ブロック変数として使える
そうすれば、foo は、ブロック内だけのローカルスコープを持つ、
ブロック変数として使える
314デフォルトの名無しさん
2017/09/18(月) 10:13:22.15ID:Rs/BRyvp fooに代入出来るけどあえてしない場合は
lambda { |x, foo| …… }
って書くんじゃないの?
俺の書いたのは
lambda { |x; foo| …… }
「;」以降の変数って何なんですかね、こんな変な文法
変数宣言してるのと変わらないですよね
変数宣言を代入で代用するアイデアは本当にうまくいってますね
「@」もサイコーですし、python の nonlocal も最高
lambda { |x, foo| …… }
って書くんじゃないの?
俺の書いたのは
lambda { |x; foo| …… }
「;」以降の変数って何なんですかね、こんな変な文法
変数宣言してるのと変わらないですよね
変数宣言を代入で代用するアイデアは本当にうまくいってますね
「@」もサイコーですし、python の nonlocal も最高
315デフォルトの名無しさん
2017/09/18(月) 10:49:09.23ID:vEKmFrOo しつこいぞ荒し
いい加減にしろ
いい加減にしろ
316デフォルトの名無しさん
2017/09/18(月) 11:15:25.67ID:Rs/BRyvp > >>307
> >Ruby: それはstdlibが搭載されているモジュールをrequireすると、
> >整数割り算の動き方に影響を与えてしまう言語。 @tomdale
> それは整数割り算のメソッドをオーバーライド(上書き)したからだよ
> リンク先の文書だとモジュール “mathn” を require で指定しているね
> バージョンによって
> 素の「整数割り算の動き方」が変わってしまうナイスジョーク言語(>>209)と
> 一緒にしないでね!!(棒
これもはっきり言ってPythonのがマシ
問題になるのは2から3への移植の時だけだから
自分で移植しようとしているのは明らかに分かり切っているから
当然注意深くやるし
requireするしないで、割り算の挙動が変わる方が悪質
> >Ruby: それはstdlibが搭載されているモジュールをrequireすると、
> >整数割り算の動き方に影響を与えてしまう言語。 @tomdale
> それは整数割り算のメソッドをオーバーライド(上書き)したからだよ
> リンク先の文書だとモジュール “mathn” を require で指定しているね
> バージョンによって
> 素の「整数割り算の動き方」が変わってしまうナイスジョーク言語(>>209)と
> 一緒にしないでね!!(棒
これもはっきり言ってPythonのがマシ
問題になるのは2から3への移植の時だけだから
自分で移植しようとしているのは明らかに分かり切っているから
当然注意深くやるし
requireするしないで、割り算の挙動が変わる方が悪質
317デフォルトの名無しさん
2017/09/18(月) 11:19:25.70ID:Rs/BRyvp ああ分かりにくい日本語になってしまったな
移植の時だけ気にすればよいPythonと違って
常に気を付けなければならないRubyの方が悪質
requireするしないで、割り算のような基本的な四則演算の
挙動が変わるのはあり得ない
移植の時だけ気にすればよいPythonと違って
常に気を付けなければならないRubyの方が悪質
requireするしないで、割り算のような基本的な四則演算の
挙動が変わるのはあり得ない
318デフォルトの名無しさん
2017/09/18(月) 11:21:09.53ID:RAFTqz6F319デフォルトの名無しさん
2017/09/18(月) 11:34:58.89ID:ePom9dNv320デフォルトの名無しさん
2017/09/18(月) 11:53:48.10ID:VM+b53w3 > requireするしないで、割り算の挙動が変わる方が悪質
何の話かと思ってmathnを検索したら標準クラスをオーバーライド?するのね。
ただやるかやらないかと出来る出来ないは別の話だと思うし
requireする前に説明文読まない人はいないでしょう。
まあ間接的にrequireされてたら憤死ものですが…。
何の話かと思ってmathnを検索したら標準クラスをオーバーライド?するのね。
ただやるかやらないかと出来る出来ないは別の話だと思うし
requireする前に説明文読まない人はいないでしょう。
まあ間接的にrequireされてたら憤死ものですが…。
321デフォルトの名無しさん
2017/09/18(月) 12:06:43.11ID:H26Q6EL5 逆に言うとrequireするだけで、自分のタイミングで置きかえれるのは柔軟
322デフォルトの名無しさん
2017/09/18(月) 12:59:55.26ID:nAoTSCTK いつもの荒らしを相手にしてごめんなさい
私が馬鹿でした
私が馬鹿でした
323デフォルトの名無しさん
2017/09/18(月) 13:19:24.65ID:KVRZIFdh なんかこのアンチ、思い込みが激しくない?
324デフォルトの名無しさん
2017/09/18(月) 14:08:56.09ID:T75MpWNi 確認したらmathnライブラリは非推奨扱いになってる
リファインメントを使う代替ライブラリがあるのかな
mathn自体使った事はないけどさ
リファインメントを使う代替ライブラリがあるのかな
mathn自体使った事はないけどさ
325デフォルトの名無しさん
2017/09/18(月) 14:22:24.92ID:NfLL63dw こういう人の話を聞かないで延々、一人しゃべりしてるやつって気持ち悪い
326デフォルトの名無しさん
2017/09/18(月) 14:50:20.87ID:/S27bRBH おまい2ちゃん初めてか?
327デフォルトの名無しさん
2017/09/18(月) 15:01:07.52ID:KVRZIFdh 現実で話し聞いてくれる相手を見つけなよ
328デフォルトの名無しさん
2017/09/19(火) 00:51:54.54ID:qwtMAuXO 荒らしはまずその嘘をつく癖を直さないと
329デフォルトの名無しさん
2017/09/19(火) 11:48:35.35ID:oRSrnZEU オープンクラス、つまりモンキーパッチは嫌われてる
JS の、prototype.js と同じ。
基本的なAPI を上書きするから、挙動が変わる
だから、嫌われる
JS の、prototype.js と同じ。
基本的なAPI を上書きするから、挙動が変わる
だから、嫌われる
330デフォルトの名無しさん
2017/09/19(火) 11:59:30.04ID:PO17xH6Y なぜそんなものを作ったとなじる前にそんなものじゃない実装をお作りになったらどうでしょうか。
オーバーライドな実装が気に入らない、だから自分でそれをしない実装を作った!というのは別に誰にも否定されませんよ。
出来たそれが多くの人に支持されるかどうか?の話はまた別ですが。
オーバーライドな実装が気に入らない、だから自分でそれをしない実装を作った!というのは別に誰にも否定されませんよ。
出来たそれが多くの人に支持されるかどうか?の話はまた別ですが。
331デフォルトの名無しさん
2017/09/19(火) 12:23:14.37ID:PJTSF08k オープンクラス自体が必ずしも悪いわけではないけど、問題はどこかで一回requireしたら影響がVM全体に波及してしまうことだね。
そのことは重大な問題としてよく認識されていて、
例えばC#の拡張メソッドはそれを含む名前空間を同一ソースファイル内で明示的にインポートしないと使えない。
Rubyも必ず毎回requireしないといけないようにすればよかったんだよ。Matzに言わせれば屈辱かもしれないけど。
そのことは重大な問題としてよく認識されていて、
例えばC#の拡張メソッドはそれを含む名前空間を同一ソースファイル内で明示的にインポートしないと使えない。
Rubyも必ず毎回requireしないといけないようにすればよかったんだよ。Matzに言わせれば屈辱かもしれないけど。
332デフォルトの名無しさん
2017/09/19(火) 12:58:20.02ID:pUrd1x2X refine使えよ
333デフォルトの名無しさん
2017/09/19(火) 14:07:33.30ID:PO17xH6Y それは逆のこともあってグローバルにしたいからそのようにヤルってのもあるでしょう。
それがそのように作成されているのはそのようにする意図があるのだし
影響受けまくりの共同開発のリポジトリで独断なら話は戦争ですが
使う人がいなきゃ肥やしにもならないライブラリにいちいち文句つけるなんて時間の無駄ですよ。
ただそこにあるだけで目障りという話でしたらまったく同じ理由で罵詈雑言の応酬になるのがオチでしょう。
それがそのように作成されているのはそのようにする意図があるのだし
影響受けまくりの共同開発のリポジトリで独断なら話は戦争ですが
使う人がいなきゃ肥やしにもならないライブラリにいちいち文句つけるなんて時間の無駄ですよ。
ただそこにあるだけで目障りという話でしたらまったく同じ理由で罵詈雑言の応酬になるのがオチでしょう。
334デフォルトの名無しさん
2017/09/19(火) 14:12:31.68ID:qwtMAuXO アンチは思い込みの激しい性格だから、まともな社会生活をおくれなくて孤独なんだよ
335デフォルトの名無しさん
2017/09/19(火) 15:04:48.55ID:pVbgaDCi 話し相手が欲しくてスレを荒らしてたのか
なんだかちょっと可哀想
なんだかちょっと可哀想
336デフォルトの名無しさん
2017/09/19(火) 15:11:46.91ID:OkajuEzq 必要ならrefinementを使おうで終わる話をグダグダ続けるなよ
初心者なら素直に、こういう場合はどうすればいいのって聞こうね
初心者なら素直に、こういう場合はどうすればいいのって聞こうね
337デフォルトの名無しさん
2017/09/19(火) 15:36:30.17ID:AHugq77Y 孤独な人生を送るのは親の育て方が間違っていただけ
だから思い込みが激しいのは本人の責任ではない
だから思い込みが激しいのは本人の責任ではない
338デフォルトの名無しさん
2017/09/19(火) 19:13:47.20ID:sOczhhK4 標準クラスを上書きしようって発想に至らしめる原因は
Rubyが遅いからなんだけどね
C++ならユーザー定義の数値クラス作って終わり
Rubyが遅いからなんだけどね
C++ならユーザー定義の数値クラス作って終わり
339デフォルトの名無しさん
2017/09/19(火) 20:41:46.88ID:e66Wy8x+ >>331
C#の拡張メソッドは、別のメソッドを変更しない。
C#の拡張メソッドは、別のメソッドを変更しない。
340デフォルトの名無しさん
2017/09/19(火) 20:56:09.99ID:pVbgaDCi 自演で構って下さいアピールは逆効果だよ
341デフォルトの名無しさん
2017/09/20(水) 07:19:28.44ID:+O4Z8sr5 昔、Rubyのコードを他言語のソースコードに翻訳したり逆翻訳するコンパイラツールを見た覚えがあるんだけど、
誰か詳細知っている人いる?
誰か詳細知っている人いる?
342デフォルトの名無しさん
2017/09/20(水) 10:18:26.15ID:cwCxN8ct343デフォルトの名無しさん
2017/09/20(水) 10:19:21.40ID:cwCxN8ct344デフォルトの名無しさん
2017/09/21(木) 02:02:31.36ID:zN1Ojhkv どっかでrubyからC/C++に変換する物を見たけど、
どこだったかな?
どこだったかな?
345デフォルトの名無しさん
2017/09/21(木) 07:56:13.32ID:jI+7buuF 荒らしが出てこない所を見ると、学部生の夏休みは終わっちゃったか
346デフォルトの名無しさん
2017/09/21(木) 08:02:41.56ID:i2z8B4+0 LLVMの中間言語に変換するのはまだ完成してなかったんだっけ
347デフォルトの名無しさん
2017/09/21(木) 08:59:07.48ID:az3FYHb4 単位取得ギリギリの学生さんは、夏休み中イライラ爆発してんだろうねぇ。
最近は、単位バラマキなんだけか?
最近は、単位バラマキなんだけか?
348デフォルトの名無しさん
2017/09/21(木) 13:03:17.36ID:kkyna6sC JRuby は?
JVM 中間コードから、逆コンパイルできるかも?
JVM 中間コードから、逆コンパイルできるかも?
349デフォルトの名無しさん
2017/09/21(木) 18:45:40.87ID:iiWOifkH >>348
聞いたことないんですね。作ってもらえるんですか?
聞いたことないんですね。作ってもらえるんですか?
350デフォルトの名無しさん
2017/09/21(木) 18:51:20.23ID:Ei962/hq >>348
JRubyのランタイムにがっつり依存したクソビッチなコードをゲロゲロするから使い物にならんよ
JRubyのランタイムにがっつり依存したクソビッチなコードをゲロゲロするから使い物にならんよ
351デフォルトの名無しさん
2017/09/21(木) 20:38:47.71ID:K0No9bcT 釣りにやさしい反応を返すRubyist
352デフォルトの名無しさん
2017/09/21(木) 22:44:42.25ID:ttsHKcWH Ruby自体が釣り言語だからな
353デフォルトの名無しさん
2017/09/21(木) 22:50:21.57ID:ttsHKcWH しかし、釣った後の魚をどうするかで困るんだよな
本当に魚じゃあるまいし、無下にも出来ない
せっかくスコープをグチャグチャにしてまで変数宣言を無くしたわけで
それが結局メリットが無いのが皆にバレても、今更ね
本当に魚じゃあるまいし、無下にも出来ない
せっかくスコープをグチャグチャにしてまで変数宣言を無くしたわけで
それが結局メリットが無いのが皆にバレても、今更ね
354デフォルトの名無しさん
2017/09/21(木) 23:01:34.46ID:ttsHKcWH 変数宣言に型を書かなくてもよいって所までは
動的型にすれば簡単なんだけど
ここで誤って勢いあまって変数宣言自体を無くすところまでやると
スコープがぐちゃぐちゃになる
代入で変数宣言を代用しても
新しい変数への代入なのか、既存の変数への代入なのか、区別がつかない
そこへきて、動的型自体にメリットが無いことが広く知れ渡ってしまったもんだから
スコープをグチャにしてまで変数宣言を無くした意味がもうワケワカ
ここで変数に静的な型を付けるよう改良するなら、変数宣言も復活する話になるし
変数宣言があるなら普通のレキシカルスコープでよい話になるので
今までのキメラ的な苦労が水の泡
素晴らしい
動的型にすれば簡単なんだけど
ここで誤って勢いあまって変数宣言自体を無くすところまでやると
スコープがぐちゃぐちゃになる
代入で変数宣言を代用しても
新しい変数への代入なのか、既存の変数への代入なのか、区別がつかない
そこへきて、動的型自体にメリットが無いことが広く知れ渡ってしまったもんだから
スコープをグチャにしてまで変数宣言を無くした意味がもうワケワカ
ここで変数に静的な型を付けるよう改良するなら、変数宣言も復活する話になるし
変数宣言があるなら普通のレキシカルスコープでよい話になるので
今までのキメラ的な苦労が水の泡
素晴らしい
355デフォルトの名無しさん
2017/09/21(木) 23:54:47.40ID:qyztOB8O オメーの話なんざ価値ねーから
1行未満にまとめとけや
1行未満にまとめとけや
356デフォルトの名無しさん
2017/09/22(金) 00:00:54.86ID:GRZGpevQ 1行未満って0行じゃんw
消えろっていう表現ってことかーいいね、その使い方w
消えろっていう表現ってことかーいいね、その使い方w
357デフォルトの名無しさん
2017/09/22(金) 00:41:00.54ID:9s7VGfiV いつもの人だと思うけど
こういうのは即NGできるので助かるわー
こういうのは即NGできるので助かるわー
358デフォルトの名無しさん
2017/09/22(金) 08:48:34.24ID:CYSXe8iX 単位没収確定
359デフォルトの名無しさん
2017/09/23(土) 13:02:09.34ID:WtNBJIHg 今だにruby1.9.3以下がメインですが、今の言語・システムの設計では、変数宣言とスコープが今の論点の一つなんですか?
思いついた解法を書くつもりは特に無いですが。
思いついた解法を書くつもりは特に無いですが。
360デフォルトの名無しさん
2017/09/23(土) 14:54:45.80ID:j6VCxv0o 全然
皆もっと先を行ってるけど
Rubyは一番最初の時点で躓いてるってだけだね
「@」
皆もっと先を行ってるけど
Rubyは一番最初の時点で躓いてるってだけだね
「@」
361デフォルトの名無しさん
2017/09/23(土) 14:58:52.93ID:Dvp9BlYO perl嫌いって言いつつperlの真似しちゃってるのがね
362デフォルトの名無しさん
2017/09/23(土) 15:23:09.65ID:xCJjTQ1w363デフォルトの名無しさん
2017/09/23(土) 15:32:32.74ID:WtNBJIHg つまづく原因は、履いてる靴が悪いのか、障害物があるのか、のどちらかでしょう。頑張り過ぎ、何でもござれ、全方位対応は、昭和時代の思い出です。
stringの、force_encoding (String)あたりはrubyならではの釣りだと思います。java9のstringは内部はbyte[]みたいになるそうですけど。
ところでrubyの、初心者じゃない方の質問スレは、いつ消えたんですか?
stringの、force_encoding (String)あたりはrubyならではの釣りだと思います。java9のstringは内部はbyte[]みたいになるそうですけど。
ところでrubyの、初心者じゃない方の質問スレは、いつ消えたんですか?
364デフォルトの名無しさん
2017/09/23(土) 15:41:14.27ID:PFKg/P6i またいつもの人だね
NG捗らないからID変えならが書くのやめて欲しいわ
NG捗らないからID変えならが書くのやめて欲しいわ
365デフォルトの名無しさん
2017/09/23(土) 15:42:24.35ID:WtNBJIHg366デフォルトの名無しさん
2017/09/23(土) 16:14:06.50ID:89h9xiW6 FXRubyなんていう便利な代物を今更知った
RubyにもちゃんとGUI作れるツールあるじゃないか!
RubyにもちゃんとGUI作れるツールあるじゃないか!
367デフォルトの名無しさん
2017/09/23(土) 16:50:37.72ID:xCJjTQ1w368デフォルトの名無しさん
2017/09/23(土) 17:28:51.15ID:WtNBJIHg 私のお聞きしたことに答えないなら、このスレで私がお役に立てることは無いです。
>>366
www.fxruby.orgは接続できませんでした。fox tkですね。guiは、はるか昔に考えたことがあります。が、普通はwxwidgets,tcltk,javaswingじゃないですか。guiを今ならhtmlしかないです。
作ってみても、どうせformもどきでしょ。しかもコードは、処理(命令)と云うより構造(宣言)だらけだし。
>>367
あなたとお話することはなさそうです。私が知ってることばかり、または、容易に推論できることばかりです。その程度の指摘しかできないなら、ググれば十分です。なので、あなたが、私へ、時間を使う、必要は、ありません。
>>366
www.fxruby.orgは接続できませんでした。fox tkですね。guiは、はるか昔に考えたことがあります。が、普通はwxwidgets,tcltk,javaswingじゃないですか。guiを今ならhtmlしかないです。
作ってみても、どうせformもどきでしょ。しかもコードは、処理(命令)と云うより構造(宣言)だらけだし。
>>367
あなたとお話することはなさそうです。私が知ってることばかり、または、容易に推論できることばかりです。その程度の指摘しかできないなら、ググれば十分です。なので、あなたが、私へ、時間を使う、必要は、ありません。
369デフォルトの名無しさん
2017/09/23(土) 18:41:00.21ID:oQZcLwSS >guiを今ならhtmlしかないです。
xmlならwx,qt,gtkなどよく見るけどhtmlってどんなの?
HTA的なものがあるのかな
xmlならwx,qt,gtkなどよく見るけどhtmlってどんなの?
HTA的なものがあるのかな
370デフォルトの名無しさん
2017/09/23(土) 18:46:39.04ID:WtNBJIHg >>369
stringが不明ですね。あなたは蟲なんですか?
stringが不明ですね。あなたは蟲なんですか?
371デフォルトの名無しさん
2017/09/23(土) 19:23:40.35ID:xCJjTQ1w >>368
なにこいつ(|||´Д`)
なにこいつ(|||´Д`)
372デフォルトの名無しさん
2017/09/23(土) 20:26:38.45ID:WtNBJIHg rubyスレでも、達人はいなくなったんですね。寂しい限りです。
373デフォルトの名無しさん
2017/09/23(土) 20:30:41.03ID:b6I3iAXW もともといない
374デフォルトの名無しさん
2017/09/23(土) 20:46:17.06ID:WtNBJIHg >>373
ID導入の数年前までは少しいましたよ。今は、rubyの達人さんたちはどこにいるんでしょうか?
ID導入の数年前までは少しいましたよ。今は、rubyの達人さんたちはどこにいるんでしょうか?
375デフォルトの名無しさん
2017/09/23(土) 21:42:42.17ID:lJM5VEju >>354
いくつか勉強不足な箇所はあるけど、「スコープがぐちゃぐちゃ」という
指摘に関しては、まったくもってそのとおりだね
>>> x = 1 # グローバル変数 x を初期値 1 で宣言
>>> def f(dx): x = x + dx # 変数 x を破壊的に更新する手続き f を定義
... ^D
>>> f(2) # 手続き f を引数 2 で呼び出してみると・・・
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in f
UnboundLocalError: local variable 'x' referenced before assignment
まさに公式文書に書かれている通りの結果になった:
https://docs.python.jp/3/glossary.html#term-nested-scope
ネストされたスコープはデフォルトでは変数の参照だけができ、
変数の代入はできないので注意してください。
では、続けてみよう
>>> array = [1,2,3] # グローバル変数 array を初期値 [1,2,3] で宣言
>>> def f(x): array.append(x) # 変数 array を破壊的に更新する手続き f を定義
... ^D
>>> array # 念のため、変数 array の内容を確認
[1, 2, 3]
>>> f(4) # 手続き f を引数 4 で呼び出してみると・・・
>>> array
[1, 2, 3, 4] # あれれ、グローバル変数なのに書き込みできてしまったぞぉ?!(棒
いくつか勉強不足な箇所はあるけど、「スコープがぐちゃぐちゃ」という
指摘に関しては、まったくもってそのとおりだね
>>> x = 1 # グローバル変数 x を初期値 1 で宣言
>>> def f(dx): x = x + dx # 変数 x を破壊的に更新する手続き f を定義
... ^D
>>> f(2) # 手続き f を引数 2 で呼び出してみると・・・
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in f
UnboundLocalError: local variable 'x' referenced before assignment
まさに公式文書に書かれている通りの結果になった:
https://docs.python.jp/3/glossary.html#term-nested-scope
ネストされたスコープはデフォルトでは変数の参照だけができ、
変数の代入はできないので注意してください。
では、続けてみよう
>>> array = [1,2,3] # グローバル変数 array を初期値 [1,2,3] で宣言
>>> def f(x): array.append(x) # 変数 array を破壊的に更新する手続き f を定義
... ^D
>>> array # 念のため、変数 array の内容を確認
[1, 2, 3]
>>> f(4) # 手続き f を引数 4 で呼び出してみると・・・
>>> array
[1, 2, 3, 4] # あれれ、グローバル変数なのに書き込みできてしまったぞぉ?!(棒
376デフォルトの名無しさん
2017/09/23(土) 21:49:13.50ID:WtNBJIHg ああ。このレベルなんですか。このスレは。よく分かりました。
377357
2017/09/23(土) 23:11:57.93ID:lJM5VEju Python を知らない人には >>357 はワケワカメだと思うので補足しとく
変数への破壊的代入を基本とする大半の手続き型言語、例えば Ruby や JavaScript、
さらには古典的な Pascal や C において、スコープは以下のように定義される:
(1) あるスコープの内側で宣言された変数は、スコープの外側にあるコードから読み書きできない
(2) あらゆるスコープの内側のコードは外側の変数を自由に読み書きできる
ところが Python という言語だけは、ナゼか (2) をオレ様定義した
(2)’ あらゆるスコープの内側のコードは外側の変数を自由に読めるが、書き込みはできない
まあそんなオレ様定義も設計哲学やら個性と見れば批判にはならないのだけれど、
>>375 で実際のコードを使って示したように、このオレ様定義が実装されたのは
数値や文字列といった単純型だけで、配列/集合/辞書およびユーザ定義クラスといった
複合データ型では実装を忘れたものだから、何のためのオレ様定義だったの?と批判されている
おまけにこのスコープ問題を解決するために世の中の常識的なスコープ定義へ訂正するという
根本策を採用せず、わざわざ予約語 nonlocal やら grobal を消費してまで変数宣言文という構文を
追加するといふ「行き当たりばったりで適当な泥縄実装」を Python3 でやらかしたものだから、
>>354氏が指摘したように「スコープがぐちゃぐちゃ」になったわけです
このスコープ問題もラムダ式問題(>>303 の (3))と同様に Python4 で修正されて
「後方互換性の断絶」が再現されるんでしょうね
変数への破壊的代入を基本とする大半の手続き型言語、例えば Ruby や JavaScript、
さらには古典的な Pascal や C において、スコープは以下のように定義される:
(1) あるスコープの内側で宣言された変数は、スコープの外側にあるコードから読み書きできない
(2) あらゆるスコープの内側のコードは外側の変数を自由に読み書きできる
ところが Python という言語だけは、ナゼか (2) をオレ様定義した
(2)’ あらゆるスコープの内側のコードは外側の変数を自由に読めるが、書き込みはできない
まあそんなオレ様定義も設計哲学やら個性と見れば批判にはならないのだけれど、
>>375 で実際のコードを使って示したように、このオレ様定義が実装されたのは
数値や文字列といった単純型だけで、配列/集合/辞書およびユーザ定義クラスといった
複合データ型では実装を忘れたものだから、何のためのオレ様定義だったの?と批判されている
おまけにこのスコープ問題を解決するために世の中の常識的なスコープ定義へ訂正するという
根本策を採用せず、わざわざ予約語 nonlocal やら grobal を消費してまで変数宣言文という構文を
追加するといふ「行き当たりばったりで適当な泥縄実装」を Python3 でやらかしたものだから、
>>354氏が指摘したように「スコープがぐちゃぐちゃ」になったわけです
このスコープ問題もラムダ式問題(>>303 の (3))と同様に Python4 で修正されて
「後方互換性の断絶」が再現されるんでしょうね
378デフォルトの名無しさん
2017/09/23(土) 23:21:12.35ID:b6I3iAXW379357
2017/09/23(土) 23:34:44.90ID:lJM5VEju >>359
>変数宣言とスコープが今の論点の一つなんですか?
いいえ、それらがホットな論点であるのは Python といふナイスジョーク言語だけです(>>377)
>>362
>ヘンな弱みみたいになってるかも。
あまりにひどい言い方ではないでしょうか(棒
Ruby のそれは単純明快なブロックというスコープの内側だけで有効なローカル変数宣言の構文です
それに対して Python は nonlocal などといふ否定形の単語で「非ローカル変数宣言」という
前代未聞で意味不明瞭な構文を追加してしまったんですよ
Ruby のそれが「ヘンな弱み」なら Python のそれは「トラウマレベルの致命的欠陥」です
でも、そこまで言うのはあまりに酷すぎるんじゃないかと思います(棒
かわいそうなので、Python に関する話題は止めにしませんか?
>変数宣言とスコープが今の論点の一つなんですか?
いいえ、それらがホットな論点であるのは Python といふナイスジョーク言語だけです(>>377)
>>362
>ヘンな弱みみたいになってるかも。
あまりにひどい言い方ではないでしょうか(棒
Ruby のそれは単純明快なブロックというスコープの内側だけで有効なローカル変数宣言の構文です
それに対して Python は nonlocal などといふ否定形の単語で「非ローカル変数宣言」という
前代未聞で意味不明瞭な構文を追加してしまったんですよ
Ruby のそれが「ヘンな弱み」なら Python のそれは「トラウマレベルの致命的欠陥」です
でも、そこまで言うのはあまりに酷すぎるんじゃないかと思います(棒
かわいそうなので、Python に関する話題は止めにしませんか?
380デフォルトの名無しさん
2017/09/23(土) 23:43:28.77ID:WtNBJIHg pyでは、ブロック {} do endのサポートはされたんですか?
381デフォルトの名無しさん
2017/09/23(土) 23:45:31.47ID:WtNBJIHg >>378
そのレベルの高低は、何を基準としてでてきたんですか?
そのレベルの高低は、何を基準としてでてきたんですか?
382357 改め 375
2017/09/23(土) 23:55:10.03ID:lJM5VEju383デフォルトの名無しさん
2017/09/24(日) 00:06:19.23ID:ry31kkE4 pyの話やpyの言語specはすれ違いです。まず、pyを使い続けることに疑問を持ったほうがいいでしょう。
人工知能など、十数年の周期で起きているインフルエンザです。あと2年は流行が続くでしょうけど、ノイマン型の限界で研究も限界が来るでしょう。そのときにpyの人気も終息します。
どうせバイトコードにするなら実行速度など比べても仕様がないと思うんですけど。なんでどうしようもないところを気にするんでしょうか。シングルスレッド?マルチスレッド?知能が低い人の考えてることは、なんだかよく分かりません。
人工知能など、十数年の周期で起きているインフルエンザです。あと2年は流行が続くでしょうけど、ノイマン型の限界で研究も限界が来るでしょう。そのときにpyの人気も終息します。
どうせバイトコードにするなら実行速度など比べても仕様がないと思うんですけど。なんでどうしようもないところを気にするんでしょうか。シングルスレッド?マルチスレッド?知能が低い人の考えてることは、なんだかよく分かりません。
384デフォルトの名無しさん
2017/09/24(日) 00:54:08.29ID:ZoycLPfe385デフォルトの名無しさん
2017/09/24(日) 06:59:11.54ID:bAyFiwH3 最近、このスレ以外でもマッチポンプ目的で荒らしが出没してるから気をつけて
386デフォルトの名無しさん
2017/09/24(日) 09:08:31.15ID:L7/sMAP/ Pythonのスコープはひどいが、Rubyスレで言うことではないし
同じようにRubyのスコープもひどいのだから笑えない
「@」はどう見ても今時ではないし
if文などがスコープを持てないのも酷い
これらは変数宣言を無くしたからそうなった
明らか
同じようにRubyのスコープもひどいのだから笑えない
「@」はどう見ても今時ではないし
if文などがスコープを持てないのも酷い
これらは変数宣言を無くしたからそうなった
明らか
387デフォルトの名無しさん
2017/09/24(日) 09:21:53.62ID:bAyFiwH3 みんな釣られないでね
388デフォルトの名無しさん
2017/09/24(日) 09:32:00.62ID:L7/sMAP/ Pythonのスコープは本当にバグってて
変数への代入の有る無しでスコープが変わる
どこのスコープに属しているか調べるのに
代入の有る無しを調べなければならない
変数への代入があればインナースコープで
参照のみならアウタースコープ
つまりは 変数宣言を無くしたことで
変数宣言->変数への(最初の)代入 としたので
代入の有る無しでスコープが変わるという糞になった
これに加えてnonlocalまである
このような動作は安全性の面から好ましいという人もいるが
それは絶対嘘で、実装上の都合でそうなったに過ぎない
本当にひどいと思うが
しかしRubyのスコープが優れているという結論には繋がらない
変数への代入の有る無しでスコープが変わる
どこのスコープに属しているか調べるのに
代入の有る無しを調べなければならない
変数への代入があればインナースコープで
参照のみならアウタースコープ
つまりは 変数宣言を無くしたことで
変数宣言->変数への(最初の)代入 としたので
代入の有る無しでスコープが変わるという糞になった
これに加えてnonlocalまである
このような動作は安全性の面から好ましいという人もいるが
それは絶対嘘で、実装上の都合でそうなったに過ぎない
本当にひどいと思うが
しかしRubyのスコープが優れているという結論には繋がらない
389デフォルトの名無しさん
2017/09/24(日) 09:38:59.52ID:L7/sMAP/ Pythonは一例だが
基本的に変数宣言を無くすとスコープの仕様がバグる
だから変数宣言は有ったほうが良いし
どうせ変数宣言するんならオプショナルで型をけても悪くない
という風に考えていくと、すごくありきたりな言語が出来上がる
Rubyの最初のバージョンがそういう形で出来上がっていたら良かったが
一番最初の基本的な部分で誤ってしまって今更修正できない
修正すると、ごく普通の言語の仲間入りをするがRubyではなくなる
だから素晴らしい
基本的に変数宣言を無くすとスコープの仕様がバグる
だから変数宣言は有ったほうが良いし
どうせ変数宣言するんならオプショナルで型をけても悪くない
という風に考えていくと、すごくありきたりな言語が出来上がる
Rubyの最初のバージョンがそういう形で出来上がっていたら良かったが
一番最初の基本的な部分で誤ってしまって今更修正できない
修正すると、ごく普通の言語の仲間入りをするがRubyではなくなる
だから素晴らしい
390デフォルトの名無しさん
2017/09/24(日) 09:40:47.21ID:EATy0LdH スレ違い
なんでわざわざRubyスレ来てるんだろうかこの荒らし
寂しいの?
なんでわざわざRubyスレ来てるんだろうかこの荒らし
寂しいの?
391デフォルトの名無しさん
2017/09/24(日) 10:41:11.83ID:tu0D//Rh >>366-369
Redmine は、Rails
Redmine は、Rails
392デフォルトの名無しさん
2017/09/24(日) 14:06:06.63ID:ry31kkE4 便所の隅っこで、しかもrbスレでpyの話をしても、もしかしてアスペ?
393デフォルトの名無しさん
2017/09/24(日) 17:06:53.98ID:bAyFiwH3 10スレ程前のスレを試しに見てみ
394デフォルトの名無しさん
2017/09/24(日) 19:42:53.06ID:D2B0Yv9Y 何も見えません!!
395デフォルトの名無しさん
2017/09/24(日) 22:11:40.34ID:bAyFiwH3 荒らしはうせろ
396デフォルトの名無しさん
2017/09/25(月) 00:21:12.84ID:CVLN5qtY ID:WtNBJIHg(>>363,365,368,370,372,374,376,380,381)
http://hissi.org/read.php/tech/20170923/V3ROQkpJSGc.html
ID:L7/sMAP/(>>368,388,389)
http://hissi.org/read.php/tech/20170924/TDcvc01BUC8.html
http://hissi.org/read.php/tech/20170923/V3ROQkpJSGc.html
ID:L7/sMAP/(>>368,388,389)
http://hissi.org/read.php/tech/20170924/TDcvc01BUC8.html
397デフォルトの名無しさん
2017/09/25(月) 00:59:05.75ID:CVLN5qtY >>386
>Pythonのスコープはひどいが、Rubyスレで言うことではないし
などと言っておきながら、>>388っすか?
>同じようにRubyのスコープもひどいのだから笑えない
>「@」はどう見ても今時ではないし
>if文などがスコープを持てないのも酷い
結論として、Ruby のスコープ仕様に関する具体的な問題は、
主観的なその2点だけしか見つけられないほど小さいのだと
納得しますた
>>388
>しかしRubyのスコープが優れているという結論には繋がらない
誰一人「Rubyのスコープが優れている」なんて言っていませんけど
個人的には、Rubyのスコープ仕様は複雑だけど矛盾は無く一貫しているし、
きちんと理解すれば現実のプログラミングに支障は無いと思っています
ただし、とりたてて「Rubyのスコープが優れている」と言うほどのものではない
>>354氏が指摘してくれたように、Python のスコープ仕様は世の中の常識とは
かけ離れていて、あまりに酷すぎるんです(>>375,377)
>Pythonのスコープはひどいが、Rubyスレで言うことではないし
などと言っておきながら、>>388っすか?
>同じようにRubyのスコープもひどいのだから笑えない
>「@」はどう見ても今時ではないし
>if文などがスコープを持てないのも酷い
結論として、Ruby のスコープ仕様に関する具体的な問題は、
主観的なその2点だけしか見つけられないほど小さいのだと
納得しますた
>>388
>しかしRubyのスコープが優れているという結論には繋がらない
誰一人「Rubyのスコープが優れている」なんて言っていませんけど
個人的には、Rubyのスコープ仕様は複雑だけど矛盾は無く一貫しているし、
きちんと理解すれば現実のプログラミングに支障は無いと思っています
ただし、とりたてて「Rubyのスコープが優れている」と言うほどのものではない
>>354氏が指摘してくれたように、Python のスコープ仕様は世の中の常識とは
かけ離れていて、あまりに酷すぎるんです(>>375,377)
398デフォルトの名無しさん
2017/09/25(月) 01:36:00.79ID:SyR0/asg さて同胞がRubyのスレでPythonの悪口言ってますよ
皆さん擁護してあげてください
皆さん擁護してあげてください
399デフォルトの名無しさん
2017/09/25(月) 02:09:17.63ID:Lq2k6P7o よっしゃ
んじゃ俺はPythonスレでRubyを的外れにディスってくるぜ!!!!!
んじゃ俺はPythonスレでRubyを的外れにディスってくるぜ!!!!!
400デフォルトの名無しさん
2017/09/25(月) 05:28:37.17ID:AJ+0XaK7 リアルで話相手見つけろ
ここにおまえを構ってくれるほど暇な人はいない
受け付けているレスは初心者の質問中心だ
ここにおまえを構ってくれるほど暇な人はいない
受け付けているレスは初心者の質問中心だ
401デフォルトの名無しさん
2017/09/25(月) 13:37:27.59ID:7SZSTs1B 瑕疵担保責任(かしたんぽせきにん)
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
402デフォルトの名無しさん
2017/09/25(月) 13:46:59.49ID:1g9PJt6J スレ違い
403デフォルトの名無しさん
2017/09/26(火) 03:49:41.39ID:m0UrTKNQ arrayのpackメソッドってみんな全部覚てる?
俺は量が多くて覚えきれないから、いまいち何ができて何ができないか把握できない
俺は量が多くて覚えきれないから、いまいち何ができて何ができないか把握できない
404デフォルトの名無しさん
2017/09/26(火) 03:52:37.86ID:w3seKs+r packとかそもそも使わない
405デフォルトの名無しさん
2017/09/26(火) 04:26:57.32ID:q4PyBsS5 バイナリいじったり、作ったりするときに使う
その都度リファレンスを読み返すけど
その都度リファレンスを読み返すけど
406デフォルトの名無しさん
2017/09/26(火) 09:37:33.97ID:fZxiOEU0407デフォルトの名無しさん
2017/09/26(火) 21:26:43.24ID:U5HCny0u 使う回数多ければ自然と覚えるだろう
文字列扱うやつなら正規表現とかみたいに
文字列扱うやつなら正規表現とかみたいに
408デフォルトの名無しさん
2017/09/26(火) 23:01:09.68ID:qHxce6jn packフォーマットってある意味暗号だよな
かと言ってFiddle::CStructとかFFI::Structとかは文字列オブジェクトをそのまま扱えないし
それにバイナリデータをいじる時たまにunionを扱いたくなるけど一手間なんだよね
かと言ってFiddle::CStructとかFFI::Structとかは文字列オブジェクトをそのまま扱えないし
それにバイナリデータをいじる時たまにunionを扱いたくなるけど一手間なんだよね
409デフォルトの名無しさん
2017/09/26(火) 23:20:44.46ID:Ij7a6zSN プロトコルの多くがテキスト化してきてるから、packは出番が少なくなってるんだよねー
410デフォルトの名無しさん
2017/09/28(木) 08:04:49.74ID:o7bSKTAB Rubyでファイル群を再帰的にパースして抽出したデータを表計算ソフトで編集後に書き戻す
という処理をする場合に表計算ソフトとのインターフェイスを簡単かつスマートに実装できませんかね?
OSはWindows、Linux、FreeBSD。表計算ソフトはExcel、Libre/OpenOffice、Gnumericを想定します
現状はWindows上でSYLKを経由してLibreOfficeで編集しているのですが、Unicode文字をそのまま
扱えなかったり、SYLKのサポートが不完全だったり、編集の終了の検出が難しかったりして面倒です
CSV/TSVでは書式や数式を扱えないですし、ODFでも編集の終了の検出が難しい問題が残ります
という処理をする場合に表計算ソフトとのインターフェイスを簡単かつスマートに実装できませんかね?
OSはWindows、Linux、FreeBSD。表計算ソフトはExcel、Libre/OpenOffice、Gnumericを想定します
現状はWindows上でSYLKを経由してLibreOfficeで編集しているのですが、Unicode文字をそのまま
扱えなかったり、SYLKのサポートが不完全だったり、編集の終了の検出が難しかったりして面倒です
CSV/TSVでは書式や数式を扱えないですし、ODFでも編集の終了の検出が難しい問題が残ります
411デフォルトの名無しさん
2017/09/28(木) 08:41:02.01ID:Lc06qyoR412デフォルトの名無しさん
2017/09/28(木) 08:48:24.32ID:7AnfF7EJ 表計算ソフトのファイルを何とかしようというのは筋が悪いよね
データとビューを分離するべき
データとビューを分離するべき
413デフォルトの名無しさん
2017/09/28(木) 12:07:21.55ID:jWw+HTna414デフォルトの名無しさん
2017/09/28(木) 23:24:47.20ID:Rgro2LTl 判りにくくてすみません
現状のRubyスクリプト
ファイル群をパースして情報を抽出
SYLKファイルを生成してこれを引数にLibreOffice Calcを起動。スクリプトは待機する
Calcで情報を編集する。このときにセル参照や簡単な数式等を使用する場合がある
編集した情報をSYLKファイルに上書き保存してCalcを終了する
スクリプトが再開しSYLKファイルをパースして情報を取り出す
ファイル群の情報を更新する
な感じです
>>411
最初はTSVを使っていたのですが>>410に書いた制約等を緩和するために今はSYLKを使用しています
>>412
情報を表形式のUIで編集したいです。これを一から作る大変なので既成の表計算ソフトを使えないかなと考え
今のような形になっています
>>413
Excelはライセンスを1つしか持っていないこともあって滅多に使いません(絶対に使わないわけではない)
現状のRubyスクリプト
ファイル群をパースして情報を抽出
SYLKファイルを生成してこれを引数にLibreOffice Calcを起動。スクリプトは待機する
Calcで情報を編集する。このときにセル参照や簡単な数式等を使用する場合がある
編集した情報をSYLKファイルに上書き保存してCalcを終了する
スクリプトが再開しSYLKファイルをパースして情報を取り出す
ファイル群の情報を更新する
な感じです
>>411
最初はTSVを使っていたのですが>>410に書いた制約等を緩和するために今はSYLKを使用しています
>>412
情報を表形式のUIで編集したいです。これを一から作る大変なので既成の表計算ソフトを使えないかなと考え
今のような形になっています
>>413
Excelはライセンスを1つしか持っていないこともあって滅多に使いません(絶対に使わないわけではない)
415デフォルトの名無しさん
2017/09/29(金) 00:38:00.00ID:KC1uJX1K 表にRubyコードをテキストとしてぶち込んで、
後でRubyからeval
後でRubyからeval
416デフォルトの名無しさん
2017/09/29(金) 01:01:10.45ID:c3tXL9dl MVC の、データ部分だけを処理すべき。
View は、そのアプリ(表計算ソフト)独自の規格だから、無理
結局、View の規格を学ぶことは、
自分で表計算ソフトを作ることになり、車輪の再発明となり、
ビジネスロジックとは無関係のことに、開発費を掛けることになる
View は、そのアプリ(表計算ソフト)独自の規格だから、無理
結局、View の規格を学ぶことは、
自分で表計算ソフトを作ることになり、車輪の再発明となり、
ビジネスロジックとは無関係のことに、開発費を掛けることになる
417デフォルトの名無しさん
2017/09/29(金) 01:16:50.93ID:Zb0/fBQl CSVで用が済まないならエクセルVBAでやるのが一番妥当だと言う結論に至った
システムにくっついたスクリプト言語がなんだかんだでマシである
システムにくっついたスクリプト言語がなんだかんだでマシである
418デフォルトの名無しさん
2017/09/29(金) 01:30:05.66ID:RLeXl8wr 表計算アプリからの戻りはプロセスを監視するかファイルを監視するかしかない
Windowsの場合はファイルクローズをイベントとして基本的に拾えないので
定期的にポーリングするかファイル変更イベントを監視してチェックする
Linux系で動かしてinotify使うと楽
でも表計算アプリでの編集は手動だろうから
それが終わったらRubyを起動したんでも良くない? 個人用でしょ?
もしそれも面倒なら最低限のマクロを書いてRubyからwatchしやすくするとかかな
Windowsの場合はファイルクローズをイベントとして基本的に拾えないので
定期的にポーリングするかファイル変更イベントを監視してチェックする
Linux系で動かしてinotify使うと楽
でも表計算アプリでの編集は手動だろうから
それが終わったらRubyを起動したんでも良くない? 個人用でしょ?
もしそれも面倒なら最低限のマクロを書いてRubyからwatchしやすくするとかかな
419デフォルトの名無しさん
2017/09/29(金) 03:05:56.84ID:UluMyDjB >>414
>Calcで情報を編集する
確認するけどこれは手動だよね?
>Calcを終了する
>スクリプトが再開し
「編集の終了の検出」で再開を自動化したいの?
普通に編集後スクリプトを
手動起動するんじゃダメなの?
商業アプリでも他ソフトで編集してから
再起動させるのは普通だと思うけど
もし表計算と何度も往復して面倒とかだったら
1. VBAを使ってエクセルメインで処理する
2. RubyにGUIをつけて編集可能にする
上記のいずれかを考えるが
表計算のGUIを実装するのは非常に大変なので
1の方が圧倒的に楽だと思う
>Calcで情報を編集する
確認するけどこれは手動だよね?
>Calcを終了する
>スクリプトが再開し
「編集の終了の検出」で再開を自動化したいの?
普通に編集後スクリプトを
手動起動するんじゃダメなの?
商業アプリでも他ソフトで編集してから
再起動させるのは普通だと思うけど
もし表計算と何度も往復して面倒とかだったら
1. VBAを使ってエクセルメインで処理する
2. RubyにGUIをつけて編集可能にする
上記のいずれかを考えるが
表計算のGUIを実装するのは非常に大変なので
1の方が圧倒的に楽だと思う
420デフォルトの名無しさん
2017/09/29(金) 05:59:14.07ID:jL38KlQs 表形式のUIで編集したいだけなんだから、GUIはWebブラウザに任せればいいだけじゃん
421デフォルトの名無しさん
2017/09/29(金) 06:25:50.08ID:UluMyDjB Webアプリにすれば連携しやすいが
GUIを実装するのに
JavaScriptが必要になる
JSが使える前提ならアリかもしれないが
やはりエクセルの挙動を再現するのは
ライブラリがあっても大変
GUIを実装するのに
JavaScriptが必要になる
JSが使える前提ならアリかもしれないが
やはりエクセルの挙動を再現するのは
ライブラリがあっても大変
422デフォルトの名無しさん
2017/09/29(金) 07:29:16.17ID:Vf0Ansyt require 'win32ole'
ServiceManager = WIN32OLE.new("com.sun.star.ServiceManager")
StarDesktop = ServiceManager.createInstance("com.sun.star.frame.Desktop")
doc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, [])
#doc = StarDesktop.loadComponentfromUrl( 'file:///D:/Office/OOO/wrk.ods', '_hidden', 0, [])
sheet = doc.sheets.getByIndex(0)
cell = sheet.getCellByPosition(0, 1)
cell = sheet.getCellRangeByName("A2")
sheet.getCellRangeByName("A1").string = "文字"
sheet.getCellRangeByName("B1").value = 123
sheet.getCellRangeByName("B2").value = 654
sheet.getCellRangeByName("B3").formula = "=B1+B2"
p sheet.getCellRangeByName("A1").type
p sheet.getCellRangeByName("B1").type
ServiceManager = WIN32OLE.new("com.sun.star.ServiceManager")
StarDesktop = ServiceManager.createInstance("com.sun.star.frame.Desktop")
doc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, [])
#doc = StarDesktop.loadComponentfromUrl( 'file:///D:/Office/OOO/wrk.ods', '_hidden', 0, [])
sheet = doc.sheets.getByIndex(0)
cell = sheet.getCellByPosition(0, 1)
cell = sheet.getCellRangeByName("A2")
sheet.getCellRangeByName("A1").string = "文字"
sheet.getCellRangeByName("B1").value = 123
sheet.getCellRangeByName("B2").value = 654
sheet.getCellRangeByName("B3").formula = "=B1+B2"
p sheet.getCellRangeByName("A1").type
p sheet.getCellRangeByName("B1").type
423デフォルトの名無しさん
2017/09/29(金) 09:07:46.91ID:xJMWYcO3 やった事ないけどリブレオフィスならpythonでマクロ操作できるんじゃないの?
424デフォルトの名無しさん
2017/09/29(金) 13:30:50.48ID:K1n6MHEs ここまでの書き込みを読めばわかるけど
これだけ話がそれるのを見てもわかる通り
物凄く端的に言えば
出来ない
が回答のようだよ
これだけ話がそれるのを見てもわかる通り
物凄く端的に言えば
出来ない
が回答のようだよ
425デフォルトの名無しさん
2017/09/29(金) 13:52:36.88ID:KC1uJX1K 荒らしはうせろ
426デフォルトの名無しさん
2017/09/29(金) 17:12:08.47ID:/1pN5XFr >>423
出来るけど何をしたいの?
出来るけど何をしたいの?
427デフォルトの名無しさん
2017/09/29(金) 23:02:51.31ID:RLeXl8wr428デフォルトの名無しさん
2017/09/30(土) 10:01:17.83ID:TLzEdb0d 来年のExcelを待とう。ttp://jp.techcrunch.com/2017/09/27/20170926microsoft-excel-is-about-to-get-a-lot-smarter/
429デフォルトの名無しさん
2017/09/30(土) 11:40:05.80ID:XdOHXaSN 本日14時から
ニコニコ動画などで
Excel方眼紙は悪なのか? その是非を問う公開討論会を生中継
2017/09/30 14:00開始 - ニコニコ生放送
ニコニコ動画などで
Excel方眼紙は悪なのか? その是非を問う公開討論会を生中継
2017/09/30 14:00開始 - ニコニコ生放送
430デフォルトの名無しさん
2017/09/30(土) 20:03:10.07ID:auZlLsd0 質問です
ブロックつきで呼び出されたメソッドから、
super をブロックなしで呼び出したいんですが、
どうやればいいんでしょうか?
親クラスに外部イテレータ取得用のメソッドを追加するしかない?
コード例はこんな感じです
ttps://ideone.com/HMVdVD
ブロックつきで呼び出されたメソッドから、
super をブロックなしで呼び出したいんですが、
どうやればいいんでしょうか?
親クラスに外部イテレータ取得用のメソッドを追加するしかない?
コード例はこんな感じです
ttps://ideone.com/HMVdVD
431デフォルトの名無しさん
2017/09/30(土) 20:58:00.31ID:zjhAyoS1 super(&nil)かな。でもeachのEnumeratorだからBのeachが呼ばれるだけだな
432430
2017/09/30(土) 23:06:46.66ID:iQQJc6F+433430
2017/09/30(土) 23:09:29.84ID:iQQJc6F+ あっ 違う
ttps://ideone.com/oNjS8J
これでいいんですね
シンプルだしこれで行きたいと思います
どうもありがとうございました
そして sage 忘れ……
ttps://ideone.com/oNjS8J
これでいいんですね
シンプルだしこれで行きたいと思います
どうもありがとうございました
そして sage 忘れ……
434デフォルトの名無しさん
2017/10/01(日) 09:06:54.01ID:haDSEbeL ジャアアアw
435デフォルトの名無しさん
2017/10/01(日) 17:51:05.47ID:YAYz069J Ruby 4: To Infinity and Beyond // Speaker Deck
https://speakerdeck.com/bbatsov/ruby-4-to-infinity-and-beyond
https://speakerdeck.com/bbatsov/ruby-4-to-infinity-and-beyond
436デフォルトの名無しさん
2017/10/04(水) 16:19:15.38ID:x/lJJY2U rubyの人工知能の本、もっと増えないかな
437デフォルトの名無しさん
2017/10/05(木) 00:30:39.28ID:rJN31A7T 教えてください。
hash = [{"fruits"=>"apple","price"=>"100"},{"fruits"=>"orange","price"=>"50"}]
という風に続いている配列から
オレンジの値段を取り出す場合、
どうしたらいいですか?
hash = [{"fruits"=>"apple","price"=>"100"},{"fruits"=>"orange","price"=>"50"}]
という風に続いている配列から
オレンジの値段を取り出す場合、
どうしたらいいですか?
438デフォルトの名無しさん
2017/10/05(木) 01:02:40.96ID:MJCn4tJ3 ハッシュが入ってる配列にふさわしい名前は少なくともhashではないと思う
irb> fruits_data = [{"fruits"=>"apple","price"=>"100"},{"fruits"=>"orange","price"=>"50"}]
irb> fruits_data.each{|h| p h["price"]}
"100"
"50"
irb> p fruits_data.map{|h| h["price"]}
=> ["100", "50"]
irb> p fruits_data.inject(0){|sum, h| sum += h["price"].to_i}
150
だいたいこんな流れかと
irb> fruits_data = [{"fruits"=>"apple","price"=>"100"},{"fruits"=>"orange","price"=>"50"}]
irb> fruits_data.each{|h| p h["price"]}
"100"
"50"
irb> p fruits_data.map{|h| h["price"]}
=> ["100", "50"]
irb> p fruits_data.inject(0){|sum, h| sum += h["price"].to_i}
150
だいたいこんな流れかと
439デフォルトの名無しさん
2017/10/05(木) 01:07:26.58ID:MJCn4tJ3 すまん寝ながら書いてて要件満たしてなかった
irb> p fruits_data.find{|h| h["fruits"] == "orange"}
{"fruits"=>"orange", "price"=>"50"}
irb> p fruits_data.find{|h| h["fruits"] == "orange"}["price"]
"50"
文字列が嫌ならto_iでもしとけ
irb> p fruits_data.find{|h| h["fruits"] == "orange"}
{"fruits"=>"orange", "price"=>"50"}
irb> p fruits_data.find{|h| h["fruits"] == "orange"}["price"]
"50"
文字列が嫌ならto_iでもしとけ
440デフォルトの名無しさん
2017/10/05(木) 01:13:05.98ID:sXpkOy/U441デフォルトの名無しさん
2017/10/05(木) 01:22:25.13ID:PaSIQ/4V >>437
果物と値段を直接ペアにした方がシンプルになる
answer = ""
fruits_price = {"apple"=>"100","orange"=>"50"}
fruits_price.each do |k,v|
answer = v if k == "orange"
end
p answer #=> 50
書いてたら先を越されてしまった
果物と値段を直接ペアにした方がシンプルになる
answer = ""
fruits_price = {"apple"=>"100","orange"=>"50"}
fruits_price.each do |k,v|
answer = v if k == "orange"
end
p answer #=> 50
書いてたら先を越されてしまった
442デフォルトの名無しさん
2017/10/05(木) 01:37:00.79ID:URIOD7FQ array.find{|i| i[:fruits] == "banana"}&.fetch(:price)
&.[:price]って書ければいいのに。
&.[](:price)は読みにくいからfetchで
&.[:price]って書ければいいのに。
&.[](:price)は読みにくいからfetchで
443デフォルトの名無しさん
2017/10/05(木) 07:56:55.79ID:rJN31A7T444デフォルトの名無しさん
2017/10/05(木) 22:52:18.95ID:RWFlOlgJ Effective Ruby の項目10に書いてあるけど、
構造化データを扱う際、Hashの配列よりも、
クラスまたは、Struct(簡易クラス、クラスジェネレータ)のような専用の型を、使った方がいい
data[:name]
キー名のような実装の詳細が、隠蔽されず表に出てくる。
また、存在しないキーは、nilとなる
Person = Struct.new(:name, :address) #定数に代入
data = Person.new("foo", "fugafuga")
data.name
Structでは属性になるから、getter, setter も付いているし、
存在しない属性名でアクセスすると、NoMethodErrorになる
構造化データを扱う際、Hashの配列よりも、
クラスまたは、Struct(簡易クラス、クラスジェネレータ)のような専用の型を、使った方がいい
data[:name]
キー名のような実装の詳細が、隠蔽されず表に出てくる。
また、存在しないキーは、nilとなる
Person = Struct.new(:name, :address) #定数に代入
data = Person.new("foo", "fugafuga")
data.name
Structでは属性になるから、getter, setter も付いているし、
存在しない属性名でアクセスすると、NoMethodErrorになる
445デフォルトの名無しさん
2017/10/07(土) 15:27:41.53ID:AWMSypLQ ちまたのRubyハッカソンってどうやって見つけるの?
446デフォルトの名無しさん
2017/10/08(日) 11:34:25.59ID:FYLwhXQv Rubyの話題っていうか、rspecなんだけどさ、
すごいもやもや感がある。
rspec便利なんだけど、なんで通常のプログラミングとは
ことなった技術を使わないといけないだのだろう?
アサーションとかモックとか
アサーションって要は比較命令だろ?
モックは要はクラスの継承だろ?
もちろんテストのための機能(エラーが起きた時の情報表示)が
ついてるのはわかるよ。でもそれは本質的なことじゃなく
比較命令や継承ができればいいはず。
つまり通常のプログラミング技術と同じ書き方でテストコードも書けるはず。
テストコードが読みやすいようなDSLになっているというのなら
それを通常のプログラミングでも使えばいいやん?読みやすくなる。
なんでテスト用に特殊な書き方を覚えなきゃならないんだ?
すごいもやもや感がある。
rspec便利なんだけど、なんで通常のプログラミングとは
ことなった技術を使わないといけないだのだろう?
アサーションとかモックとか
アサーションって要は比較命令だろ?
モックは要はクラスの継承だろ?
もちろんテストのための機能(エラーが起きた時の情報表示)が
ついてるのはわかるよ。でもそれは本質的なことじゃなく
比較命令や継承ができればいいはず。
つまり通常のプログラミング技術と同じ書き方でテストコードも書けるはず。
テストコードが読みやすいようなDSLになっているというのなら
それを通常のプログラミングでも使えばいいやん?読みやすくなる。
なんでテスト用に特殊な書き方を覚えなきゃならないんだ?
447デフォルトの名無しさん
2017/10/08(日) 12:00:51.07ID:qef5wK+C TDD, BDD とか、流行っている
Ruby は、DSL に強いから、常に流行の最先端。
2, 3年遅れて、他の言語に取り入れられる
Ruby は、DSL に強いから、常に流行の最先端。
2, 3年遅れて、他の言語に取り入れられる
448デフォルトの名無しさん
2017/10/08(日) 12:08:41.89ID:21EEh8/s BDDを実現するためにあんな「変」な書き方になってる
どうしても性に合わなきゃフツーのユニットテストもあるよ
ただそういう「メソッドの戻り値が妥当かテストするテストの一覧」だけではテストたり得ないという考え方が主流
個人的には好きよ、はみ出ないことを保証する自分向け補正レールとしての大量のユニットテスト群を高速でぐるぐるするやつ
あの時代に戻れたらいいなと思うことはある
どうしても性に合わなきゃフツーのユニットテストもあるよ
ただそういう「メソッドの戻り値が妥当かテストするテストの一覧」だけではテストたり得ないという考え方が主流
個人的には好きよ、はみ出ないことを保証する自分向け補正レールとしての大量のユニットテスト群を高速でぐるぐるするやつ
あの時代に戻れたらいいなと思うことはある
449デフォルトの名無しさん
2017/10/08(日) 13:05:22.73ID:FYLwhXQv >>477
Ruby TUEEEEはどうでもいいんだけど、そのレス見てRubyがなまじDSLに
強いからRubyという言語仕様の範囲内(内部DSL)にした結果
通常のプログラミングと異なる技術を使ってしまうんじゃないかって思った
いやちょっと違うかもな。通常のプログラミングで使う内部DSLとテスト用の
内部DSLが異なるという問題かもしれない。DSLといっても内部であればRubyという
言語でしかないので言い回しの違いでしかないかもしれないけど
TDDとかBDDとかshould系とかexpect系とか通常のアサーションとか正直どれもテストとしては
読みづらいと思う。英語としては読みやすいかもしれないけど、テストとしてはということ
どういうことかというと、テスト仕様書ってよくマトリクス(二次元の表)で書くでしょ?
日本語とか英語じゃなくて、マトリクスの形でテスト仕様書書いちゃうんだから
じゃあテストコードもマトリクスであるべきだよ。エクセルの表がまんまテストコードになる感じ
たぶんこの時点でRubyによる内部DSLとして書くのは無理なんじゃないかな
Rubyの表現能力を超えてしまう。無理にやっても読みづらくなる
そしてこのマトリクス。テストコード(定義書?データ?)はエンドユーザーでも
読みやすい(専用のテスト内容ビューワーを作っても良い)と同時にそれが
そのままアプリケーションのコードとして使えればよくね?
テストを書くだけでアプリができるとはいわない。それは不可能。でも減らすことはできる。
エンドユーザーがテストを目視で確認してOKだして、それがそのままアプリで使われれば楽じゃん?
このパラメータには英数字しか使えません。英数字しか入れられないようにチェックコード書きました
英数字しかうけつけないことを証明するテストコード書きました。頑張って英語風にしました。
そこまでやってもエンドユーザーはそれ見て判断できません。これじゃやっぱり無駄に感じる
俺が今話ししてるのはだいたい「定義」の部分なんだよね。「処理」ではない
処理に関してのテストはいままで通りやるしか無いと思うけど
定義に関するテストは(エンドユーザーにもわかりやすい形で)テストコードを書いて
それがそのまま通常のプログラミングのコードとして使えると思うんだよ
モックもクラス「定義」だしね
Ruby TUEEEEはどうでもいいんだけど、そのレス見てRubyがなまじDSLに
強いからRubyという言語仕様の範囲内(内部DSL)にした結果
通常のプログラミングと異なる技術を使ってしまうんじゃないかって思った
いやちょっと違うかもな。通常のプログラミングで使う内部DSLとテスト用の
内部DSLが異なるという問題かもしれない。DSLといっても内部であればRubyという
言語でしかないので言い回しの違いでしかないかもしれないけど
TDDとかBDDとかshould系とかexpect系とか通常のアサーションとか正直どれもテストとしては
読みづらいと思う。英語としては読みやすいかもしれないけど、テストとしてはということ
どういうことかというと、テスト仕様書ってよくマトリクス(二次元の表)で書くでしょ?
日本語とか英語じゃなくて、マトリクスの形でテスト仕様書書いちゃうんだから
じゃあテストコードもマトリクスであるべきだよ。エクセルの表がまんまテストコードになる感じ
たぶんこの時点でRubyによる内部DSLとして書くのは無理なんじゃないかな
Rubyの表現能力を超えてしまう。無理にやっても読みづらくなる
そしてこのマトリクス。テストコード(定義書?データ?)はエンドユーザーでも
読みやすい(専用のテスト内容ビューワーを作っても良い)と同時にそれが
そのままアプリケーションのコードとして使えればよくね?
テストを書くだけでアプリができるとはいわない。それは不可能。でも減らすことはできる。
エンドユーザーがテストを目視で確認してOKだして、それがそのままアプリで使われれば楽じゃん?
このパラメータには英数字しか使えません。英数字しか入れられないようにチェックコード書きました
英数字しかうけつけないことを証明するテストコード書きました。頑張って英語風にしました。
そこまでやってもエンドユーザーはそれ見て判断できません。これじゃやっぱり無駄に感じる
俺が今話ししてるのはだいたい「定義」の部分なんだよね。「処理」ではない
処理に関してのテストはいままで通りやるしか無いと思うけど
定義に関するテストは(エンドユーザーにもわかりやすい形で)テストコードを書いて
それがそのまま通常のプログラミングのコードとして使えると思うんだよ
モックもクラス「定義」だしね
450デフォルトの名無しさん
2017/10/08(日) 14:43:14.66ID:dWIEdLJn じゃあとりあえず、そのやりかたを例示したら。
現行BDDへの不満はもうわかったので。
現行BDDへの不満はもうわかったので。
451デフォルトの名無しさん
2017/10/08(日) 15:14:06.57ID:93IJP3PA RSpecはテストを構造化しやすいのが良かったが
3からmatcherの文法がクソになったので基本使わない
3からmatcherの文法がクソになったので基本使わない
452デフォルトの名無しさん
2017/10/08(日) 17:04:31.77ID:X3i4AnjM >>446
>なんでテスト用に特殊な書き方を覚えなきゃならないんだ?
それがDSLだから
たとえばHTMLやSQLもRubyやJSとはぜんぜん違うだろ
ただオレは実はMiniTest使ってる
RSpecが大きいフレームワークなので使いこなすの大変
RSpecはRakeやRailsみたいに独自の世界観築いてる
RubyでDSL使った大きめのフレームワークはみんなそう
使いやすいのはメリットだけど
学習コスト大きくなるデメリットもある
まあ個々に選べばいんじゃね?
>なんでテスト用に特殊な書き方を覚えなきゃならないんだ?
それがDSLだから
たとえばHTMLやSQLもRubyやJSとはぜんぜん違うだろ
ただオレは実はMiniTest使ってる
RSpecが大きいフレームワークなので使いこなすの大変
RSpecはRakeやRailsみたいに独自の世界観築いてる
RubyでDSL使った大きめのフレームワークはみんなそう
使いやすいのはメリットだけど
学習コスト大きくなるデメリットもある
まあ個々に選べばいんじゃね?
453デフォルトの名無しさん
2017/10/08(日) 17:43:35.10ID:FOJ8Xq1X >>450
例示は5ちゃんねるとは別の場所でやってる or これからやる
ここではしない。雑多なアイデア?みたいなのを書いて
まあ誰か突っ込んでくれw
モック大嫌いなんだけど、今考えていて気づいたことが有る。
モックって形を変えた引き数なんだな。
テストする時のマトリクスとして考えれば、引数列とは別に
例えばAPI列があってその戻り値が○の場合なんて形で書くと思う
つまりArrange、Act、Assert(AAA)におけるArrange部分だな。
【アンチパターン】Arrange、Act、Assert(AAA)を意識できていないRSpecのコード例とその対処法
https://qiita.com/jnchito/items/91779b55cae0f4915da5
モックを使う使わないに限らず、マトリクス(二次元の表形式)で
テスト仕様書(パターン)は作れると思う
あぁ、そうかrspec等は、このパターンを記述しづらいんだ。
describe、contextなどでパターンを書くことができるけど一覧性がない。
(マトリクスで書きづらいもののために)describe、contextみたいなものはあってもいいけど、
テストパターン(結果含む)とテスト内容はファイルごと分けるべきなんだろうな。
あとモックを使った場合、通常はテストパターンがあればいいと思うんだけど
呼び出し回数や引数テスト(つまりreceive(:hoge).with(引数)).at_least(回数).timesみたいなやつ)
なことをしたいことも有る。単体テストとして考えれば他のモジュール呼び出しだから理解はできるけど
どうみても内部実装に依存したテストだから嫌いだしわかりづらい
こういのはAAAと独立させて、内部実装のテストだって割り切って別に書くべきなんだろう。
マトリクスの表を用意して、引数列、テスト結果列とは別に、内部処理列を作って、
どういった関数が呼び出されるかを書いていく
例示は5ちゃんねるとは別の場所でやってる or これからやる
ここではしない。雑多なアイデア?みたいなのを書いて
まあ誰か突っ込んでくれw
モック大嫌いなんだけど、今考えていて気づいたことが有る。
モックって形を変えた引き数なんだな。
テストする時のマトリクスとして考えれば、引数列とは別に
例えばAPI列があってその戻り値が○の場合なんて形で書くと思う
つまりArrange、Act、Assert(AAA)におけるArrange部分だな。
【アンチパターン】Arrange、Act、Assert(AAA)を意識できていないRSpecのコード例とその対処法
https://qiita.com/jnchito/items/91779b55cae0f4915da5
モックを使う使わないに限らず、マトリクス(二次元の表形式)で
テスト仕様書(パターン)は作れると思う
あぁ、そうかrspec等は、このパターンを記述しづらいんだ。
describe、contextなどでパターンを書くことができるけど一覧性がない。
(マトリクスで書きづらいもののために)describe、contextみたいなものはあってもいいけど、
テストパターン(結果含む)とテスト内容はファイルごと分けるべきなんだろうな。
あとモックを使った場合、通常はテストパターンがあればいいと思うんだけど
呼び出し回数や引数テスト(つまりreceive(:hoge).with(引数)).at_least(回数).timesみたいなやつ)
なことをしたいことも有る。単体テストとして考えれば他のモジュール呼び出しだから理解はできるけど
どうみても内部実装に依存したテストだから嫌いだしわかりづらい
こういのはAAAと独立させて、内部実装のテストだって割り切って別に書くべきなんだろう。
マトリクスの表を用意して、引数列、テスト結果列とは別に、内部処理列を作って、
どういった関数が呼び出されるかを書いていく
454デフォルトの名無しさん
2017/10/08(日) 17:52:31.79ID:FOJ8Xq1X たとえば内部処理列に書くテストコードは
マトリックスの1行目を実行した場合、内部処理として
hoge.foo()
hage.bar(1,2,3)
tsuru.baz("aaa")
みたいに縦書きで書いていければいいんじゃないかな?
こういう処理が実行されることって。
あー、そうかrspecだと
Arrangeに相当する部分と
内部実装のテストがごっちゃになってるんだな。
マトリックスの1行目を実行した場合、内部処理として
hoge.foo()
hage.bar(1,2,3)
tsuru.baz("aaa")
みたいに縦書きで書いていければいいんじゃないかな?
こういう処理が実行されることって。
あー、そうかrspecだと
Arrangeに相当する部分と
内部実装のテストがごっちゃになってるんだな。
455デフォルトの名無しさん
2017/10/08(日) 17:57:45.59ID:FOJ8Xq1X テスト仕様書ってエクセルがよく使われるけど、
それと同時にエクセルで書くなともいわれる。
ようは表計算としてとして使ってないからなわけだけど、
じゃあ表計算機能をなくしたものを作れば良いんじゃないかな
それと同時にエクセルで書くなともいわれる。
ようは表計算としてとして使ってないからなわけだけど、
じゃあ表計算機能をなくしたものを作れば良いんじゃないかな
456デフォルトの名無しさん
2017/10/08(日) 18:11:17.54ID:FOJ8Xq1X ここまではテストパターンをどうやって書くかの話で
rspecでは一覧性がないから適していないという結論で良いんだろう。
これは別ファイルにするということで、describeとcontextとitあたりの
存在は消えたことだろう。
残ってるのはテストパターンではなくテスト内容。
expectとかそこらへん。これがまたRubyの通常のコードと
テストコードで書き方がぜんぜん違うってのが残ってるんだよな。
とここまで書いたが、あれ?テスト結果もマトリクスの
テスト結果列に書き込むよな?
テストコードのためにDSL(expectとか)を覚えなきゃいけないんって
本質的な問題は何なんだ?
テスト結果には、○○が××であること を
○○ == ×× みたいに書けるではないか?
あー、そうか。to be eq みたいに書かないと読みづらい(誰が?)という問題か。
to be eq みたいな構文いらんな。代わりにテストで使える命令のサブセット定義すればいい
そして専用のビューワーを使って見た時は、そのサブセット命令を日本語なりに置き換える。
WISYWIGみたいにどちらで書いても相互反映するのもいいだろう。
rspecでは一覧性がないから適していないという結論で良いんだろう。
これは別ファイルにするということで、describeとcontextとitあたりの
存在は消えたことだろう。
残ってるのはテストパターンではなくテスト内容。
expectとかそこらへん。これがまたRubyの通常のコードと
テストコードで書き方がぜんぜん違うってのが残ってるんだよな。
とここまで書いたが、あれ?テスト結果もマトリクスの
テスト結果列に書き込むよな?
テストコードのためにDSL(expectとか)を覚えなきゃいけないんって
本質的な問題は何なんだ?
テスト結果には、○○が××であること を
○○ == ×× みたいに書けるではないか?
あー、そうか。to be eq みたいに書かないと読みづらい(誰が?)という問題か。
to be eq みたいな構文いらんな。代わりにテストで使える命令のサブセット定義すればいい
そして専用のビューワーを使って見た時は、そのサブセット命令を日本語なりに置き換える。
WISYWIGみたいにどちらで書いても相互反映するのもいいだろう。
457デフォルトの名無しさん
2017/10/08(日) 18:37:43.20ID:FOJ8Xq1X バリデーション部分は実は前からアイデアがあって、
Railsとかこんな感じで書くわけだけど、
https://railsguides.jp/active_record_validations.html
こんなのは一切廃止して、言語非依存の
YAMLとかでバリデーション定義ファイルを作ればいいと思ってる。
そしてモデルでその定義ファイルを参照することもできるし、
APIからも参照することができる。関数からも参照することができる。
言語非依存ということは同じファイルをJavaScriptからも参照できるので
クライアントサイドのバリデーションも同時に定義できる。
ここで俺がいいたいことの1つとして、正規表現をバリデーション定義に
直接書くのはやめようということ。なぜなら技術的な内容過ぎて
エンドユーザーにはわからないから。
正規表現の代わりに独自の関数を使えば事足りる。
複数の条件や現在のデータも考慮しなければいけないものなどは
バリデーション定義ファイルでは実現できないかもしれないけど
重要なのは完璧にすることではなく無駄を減らすこと
またバリデーション定義に似たものとして
権限管理ファイルってのも考えられる。
なるべくエンドユーザーでも直接みれるようにして、
それをそのままプログラムに組み込めるようにしたい
Railsとかこんな感じで書くわけだけど、
https://railsguides.jp/active_record_validations.html
こんなのは一切廃止して、言語非依存の
YAMLとかでバリデーション定義ファイルを作ればいいと思ってる。
そしてモデルでその定義ファイルを参照することもできるし、
APIからも参照することができる。関数からも参照することができる。
言語非依存ということは同じファイルをJavaScriptからも参照できるので
クライアントサイドのバリデーションも同時に定義できる。
ここで俺がいいたいことの1つとして、正規表現をバリデーション定義に
直接書くのはやめようということ。なぜなら技術的な内容過ぎて
エンドユーザーにはわからないから。
正規表現の代わりに独自の関数を使えば事足りる。
複数の条件や現在のデータも考慮しなければいけないものなどは
バリデーション定義ファイルでは実現できないかもしれないけど
重要なのは完璧にすることではなく無駄を減らすこと
またバリデーション定義に似たものとして
権限管理ファイルってのも考えられる。
なるべくエンドユーザーでも直接みれるようにして、
それをそのままプログラムに組み込めるようにしたい
458デフォルトの名無しさん
2017/10/08(日) 22:48:32.17ID:ptFQWO2G >>457
> なぜなら技術的な内容過ぎてエンドユーザーにはわからないから。
え?Railsは技術者が使うものでしょ?
Railsは決して「誰でもWebアプリ書けます」みたいなWAFを目指してるわけじゃないんだし
正規表現すら使えないような技術者に媚びる必要性は一切ないと思うんだけど
> なぜなら技術的な内容過ぎてエンドユーザーにはわからないから。
え?Railsは技術者が使うものでしょ?
Railsは決して「誰でもWebアプリ書けます」みたいなWAFを目指してるわけじゃないんだし
正規表現すら使えないような技術者に媚びる必要性は一切ないと思うんだけど
459デフォルトの名無しさん
2017/10/09(月) 03:55:05.15ID:YU1H7ndt 厨房って連投しないと死ぬ病気なのか?
460デフォルトの名無しさん
2017/10/10(火) 00:12:42.64ID:DgsA/W7P %bで ASCII_8BITの文字列リテラル作れるようにして
461デフォルトの名無しさん
2017/10/10(火) 01:17:14.00ID:nyY9mfF7 "\xA5もじれつぅ〜〜".bみたいに.bメソッドじゃあ物足りない?
462デフォルトの名無しさん
2017/10/10(火) 01:39:18.83ID:DgsA/W7P frozenが当たり前みたいな風潮があるから
463デフォルトの名無しさん
2017/10/10(火) 02:10:16.84ID:nyY9mfF7464デフォルトの名無しさん
2017/10/10(火) 02:27:20.63ID:8uFKWlnU でもruby3からデフォになっちゃうでしょ
465デフォルトの名無しさん
2017/10/10(火) 03:22:52.35ID:ACpNi8fa Freeze化はJava化の始まり
466デフォルトの名無しさん
2017/10/10(火) 03:43:43.69ID:FbHCJRcA 文字列をfreezeしない理由なんて無い
関数型プログラミングを勉強しろよ
関数型プログラミングを勉強しろよ
467デフォルトの名無しさん
2017/10/10(火) 12:56:37.76ID:b+0lfNgt 何点か質問させていただいてよろしいでしょうか?
現在「Markdown → HTML 変換をする掲示板」のような CGI を練習がてら作成しています。
変換部を全部自作するのは難しいのではないかと思ったので、既存のライブラリを使用しようと思ったのですが、
種類が多すぎる上、Rails 関係のトピックばかりで検索してもいまいち判断に困ります。
以下の条件を満たす適当なものをご存じでしたらご教示願えませんでしょうか?
1. GFM 記法対応(シンタックスハイライトは不要)
2. 使用法は簡単な方が好ましい
3. 高速であったり多機能であったりする必要はない
同時に、Redcarpet を試しに使ってみようと思ったのですが、
以下のような結果となってしまい正確にインストールできません。原因など分かりますでしょうか?
(本文長すぎと怒られたので次の書き込みに続きます)
現在「Markdown → HTML 変換をする掲示板」のような CGI を練習がてら作成しています。
変換部を全部自作するのは難しいのではないかと思ったので、既存のライブラリを使用しようと思ったのですが、
種類が多すぎる上、Rails 関係のトピックばかりで検索してもいまいち判断に困ります。
以下の条件を満たす適当なものをご存じでしたらご教示願えませんでしょうか?
1. GFM 記法対応(シンタックスハイライトは不要)
2. 使用法は簡単な方が好ましい
3. 高速であったり多機能であったりする必要はない
同時に、Redcarpet を試しに使ってみようと思ったのですが、
以下のような結果となってしまい正確にインストールできません。原因など分かりますでしょうか?
(本文長すぎと怒られたので次の書き込みに続きます)
468デフォルトの名無しさん
2017/10/10(火) 13:17:56.78ID:b+0lfNgt (>>467 の続き)
NG ワードを特定できませんでした……
https://agree.5ch.net/test/read.cgi/mango/1507328607/52
上記書き込みのような結果に終わってしまいます。
他のライブラリを gem 経由でインストールする際には正常に動くのですが、
何が問題だかよろしければご教示ください。
NG ワードを特定できませんでした……
https://agree.5ch.net/test/read.cgi/mango/1507328607/52
上記書き込みのような結果に終わってしまいます。
他のライブラリを gem 経由でインストールする際には正常に動くのですが、
何が問題だかよろしければご教示ください。
469デフォルトの名無しさん
2017/10/10(火) 13:38:26.67ID:laLamLaH 記法が増えるのが好ましくないと言ってしまうと
極端な話、ifとwhileでだいたい済んじゃうんじゃないか
よく使われるから専用の記法を設ける
使いたくないなら使わなければいい
極端な話、ifとwhileでだいたい済んじゃうんじゃないか
よく使われるから専用の記法を設ける
使いたくないなら使わなければいい
470デフォルトの名無しさん
2017/10/10(火) 14:02:36.65ID:8V61cfLq >>468
理由もエラーも書いてある通りだと思うのだが
詳細なエラーはgem_make.outに書いてある
コンパイラがないか必要な開発用ライブラリがないかどっちかだろうな
稀に手元のgemバージョンがインストールパッケージの想定より新しすぎるというパターンもある
理由もエラーも書いてある通りだと思うのだが
詳細なエラーはgem_make.outに書いてある
コンパイラがないか必要な開発用ライブラリがないかどっちかだろうな
稀に手元のgemバージョンがインストールパッケージの想定より新しすぎるというパターンもある
471デフォルトの名無しさん
2017/10/10(火) 14:09:04.55ID:W/iVdWKx >>467
そんなもんpandocでも呼べば終わりでしょ
そんなもんpandocでも呼べば終わりでしょ
472デフォルトの名無しさん
2017/10/10(火) 19:17:55.04ID:QUMIjiIQ >>467
・library rdoc/markdown (Ruby 2.4.0)
https://docs.ruby-lang.org/ja/latest/library/rdoc=2fmarkdown.html
Ruby標準ドキュメンテーションツールの RDoc くらいは使ったことがあるよね?
RDoc でも当然だけど markdown は使えるのだから、真っ先にそれを読むべきじゃねえのかと
・library rdoc/markdown (Ruby 2.4.0)
https://docs.ruby-lang.org/ja/latest/library/rdoc=2fmarkdown.html
Ruby標準ドキュメンテーションツールの RDoc くらいは使ったことがあるよね?
RDoc でも当然だけど markdown は使えるのだから、真っ先にそれを読むべきじゃねえのかと
473デフォルトの名無しさん
2017/10/10(火) 21:46:18.83ID:b+0lfNgt >>469
インライン要素は簡単ですけど、ブロック要素が全体的にややこしくないですか?
Marked.js のソースを読んでみたのですが、何をしてるのか分からなくなって……
>>470
あ、そちらを乗せ忘れてました
現在スマホなので確認できませんが、何かが足りないとかいう感じじゃなくて見たことのないエラーでした
検索してみたのですが英語のフォーラムばかりでちょっと分からなかったです
>>471
これって Ruby に組み込めるんですか?
独立したツールのように思えるのですが
>>472
すみません、RDoc は使う機会がなくてほとんど分かりません
RDoc::Markdown の存在は知っていたのですが使い方がよく分からず、
調べてみたら使い物にならないみたいな記事があったので鵜呑みにしていました
上記の目的だとこちらでも問題ないのでしょうか?
インライン要素は簡単ですけど、ブロック要素が全体的にややこしくないですか?
Marked.js のソースを読んでみたのですが、何をしてるのか分からなくなって……
>>470
あ、そちらを乗せ忘れてました
現在スマホなので確認できませんが、何かが足りないとかいう感じじゃなくて見たことのないエラーでした
検索してみたのですが英語のフォーラムばかりでちょっと分からなかったです
>>471
これって Ruby に組み込めるんですか?
独立したツールのように思えるのですが
>>472
すみません、RDoc は使う機会がなくてほとんど分かりません
RDoc::Markdown の存在は知っていたのですが使い方がよく分からず、
調べてみたら使い物にならないみたいな記事があったので鵜呑みにしていました
上記の目的だとこちらでも問題ないのでしょうか?
474デフォルトの名無しさん
2017/10/10(火) 22:01:55.62ID:ACpNi8fa475デフォルトの名無しさん
2017/10/10(火) 22:40:27.88ID:nyY9mfF7 >>473
markdownをrdocで変換するサンプル
テーブルは使えないし、他に足りない機能があるのかも未確認だけど
機能的に充分かどうかは君の方でいろいろ試すといいよ
require "rdoc"
require "rdoc/markdown"
filename = "README.md"
md = File.read(filename)
doc = RDoc::Markdown.parse(md)
opts = RDoc::Options.new
converter = RDoc::Markup::ToHtml.new(opts)
html = converter.convert(doc)
puts html
markdownをrdocで変換するサンプル
テーブルは使えないし、他に足りない機能があるのかも未確認だけど
機能的に充分かどうかは君の方でいろいろ試すといいよ
require "rdoc"
require "rdoc/markdown"
filename = "README.md"
md = File.read(filename)
doc = RDoc::Markdown.parse(md)
opts = RDoc::Options.new
converter = RDoc::Markup::ToHtml.new(opts)
html = converter.convert(doc)
puts html
476デフォルトの名無しさん
2017/10/10(火) 22:43:27.37ID:nyY9mfF7 >>466
rubyで関数型プログラミングを勉強しろって、何の冗談だ?
しかもfreezeするのは文字列だけにするとか中途半端だな
『あらゆるオブジェクトをfreezeしない理由なんて無い』くらい言えよ
rubyで関数型プログラミングを勉強しろって、何の冗談だ?
しかもfreezeするのは文字列だけにするとか中途半端だな
『あらゆるオブジェクトをfreezeしない理由なんて無い』くらい言えよ
477デフォルトの名無しさん
2017/10/10(火) 22:58:25.38ID:b+0lfNgt478デフォルトの名無しさん
2017/10/10(火) 23:30:33.64ID:YB5j1JpR >Markdown → HTML 変換をする
これを行うアプリは、無数にあるから、自作する意味はない
Python のSphinx とか
これを行うアプリは、無数にあるから、自作する意味はない
Python のSphinx とか
479デフォルトの名無しさん
2017/10/10(火) 23:45:15.56ID:ACpNi8fa 練習ならむしろ自作しないと意味ない
480デフォルトの名無しさん
2017/10/11(水) 02:12:44.96ID:/FuCu7BT >>476
> rubyで関数型プログラミングを勉強しろって、何の冗談だ?
どうぞよんでくださいねw
可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用
http://postd.cc/avoid-mutation-functional-style-in-ruby/
> rubyで関数型プログラミングを勉強しろって、何の冗談だ?
どうぞよんでくださいねw
可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用
http://postd.cc/avoid-mutation-functional-style-in-ruby/
481デフォルトの名無しさん
2017/10/11(水) 06:27:37.55ID:2F1JnP4A482デフォルトの名無しさん
2017/10/11(水) 22:45:20.73ID:1IDk9wqH >>480
> 関数型プログラミングを勉強しろよ
って言っておきながら出して来たのが
> 可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用
かよ。ほんと、なんの冗談だ?
そういう事は組織内のコーディング規約で決めればいい事で、
緩いプログラミングをしたくてrubyをいじってる俺に押し付けるな
それに全てのオブジェクトを不変なものとして扱えって書いてあるのに
ことさらに文字列だけをあげつらって
> 文字列をfreezeしない理由なんて無い
とかマジでお前が何を理解してるのか心配になりますね
> 関数型プログラミングを勉強しろよ
って言っておきながら出して来たのが
> 可変性の回避 ― Rubyへの関数型プログラミングスタイルの適用
かよ。ほんと、なんの冗談だ?
そういう事は組織内のコーディング規約で決めればいい事で、
緩いプログラミングをしたくてrubyをいじってる俺に押し付けるな
それに全てのオブジェクトを不変なものとして扱えって書いてあるのに
ことさらに文字列だけをあげつらって
> 文字列をfreezeしない理由なんて無い
とかマジでお前が何を理解してるのか心配になりますね
483デフォルトの名無しさん
2017/10/12(木) 02:12:49.23ID:bkFDlrr0 >>480
なんかのインスタンスを書き換えるの御法度、全部newでやれ、なんて記事出されても
新しい嫌がらせだなぁって思った
この記事の人の言ってることを正しいとするなら、Stringだとこうするしかないかも
temp_string = String.new(OldString, "append_a")
new_string = String.new(temp_string, "append_b")
前衛的なご発想をお持ちのようで
なんかのインスタンスを書き換えるの御法度、全部newでやれ、なんて記事出されても
新しい嫌がらせだなぁって思った
この記事の人の言ってることを正しいとするなら、Stringだとこうするしかないかも
temp_string = String.new(OldString, "append_a")
new_string = String.new(temp_string, "append_b")
前衛的なご発想をお持ちのようで
484デフォルトの名無しさん
2017/10/12(木) 02:13:49.80ID:bkFDlrr0 なんかキャメルとスネーク混ざったのなんでだろう、俺
JavaのStringBuilder思い出してたかも
JavaのStringBuilder思い出してたかも
485デフォルトの名無しさん
2017/10/12(木) 02:23:49.19ID:njn1yLjW >>483
"a" でも結局はnewしてるんで同じことだよ。
"a" でも結局はnewしてるんで同じことだよ。
486デフォルトの名無しさん
2017/10/12(木) 02:29:42.04ID:bkFDlrr0 >>485
ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら
たぶん「そんなめんどくさい記法はいらね」ってレスかと思ったんだけど
となるとメモリ周りの扱いでイミュータブルかそうでないかの利点を挙げてもらわないといかんわね
ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら
たぶん「そんなめんどくさい記法はいらね」ってレスかと思ったんだけど
となるとメモリ周りの扱いでイミュータブルかそうでないかの利点を挙げてもらわないといかんわね
487デフォルトの名無しさん
2017/10/12(木) 02:34:26.64ID:bkFDlrr0 たぶんシャローとかディープとかで足かまれるか
パフォーマンス問題のチューンでもなければ
すっげーどうでもいいのでさっさと動け
って話になりそうな気もするけど(90%の問題はコレ)
パフォーマンス問題のチューンでもなければ
すっげーどうでもいいのでさっさと動け
って話になりそうな気もするけど(90%の問題はコレ)
488デフォルトの名無しさん
2017/10/12(木) 02:36:38.72ID:bkFDlrr0 パフォーマンスの問題はchefかansibleでもありゃなんとでもなるでそ、サーバ乱設
chefが必要になるほど大規模な話にかかわったことないのがアレだけど orz
chefが必要になるほど大規模な話にかかわったことないのがアレだけど orz
489デフォルトの名無しさん
2017/10/12(木) 02:39:37.05ID:D7OLf+6g Rubyでゴリゴリの関数型で書く気しない
Rubyは動的型付けだから
コンパイラの型チェックなどのメリットが少なく
柔軟性を失って書きにくくなるデメリットが残る
Rubyは動的型付けだから
コンパイラの型チェックなどのメリットが少なく
柔軟性を失って書きにくくなるデメリットが残る
490デフォルトの名無しさん
2017/10/12(木) 02:42:27.30ID:njn1yLjW >>486
> ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら
それがなんなん?
それは "a" という文字列を newして "b" という文字列をnewして
オブジェクト同士を加算する(イコール +メソッドを出している)という
意味のシンタックスシュガーなんだけど?
> ん、記事だと「 "a" + "b"」できるよとか書いてるのみてないのかしら
それがなんなん?
それは "a" という文字列を newして "b" という文字列をnewして
オブジェクト同士を加算する(イコール +メソッドを出している)という
意味のシンタックスシュガーなんだけど?
491デフォルトの名無しさん
2017/10/12(木) 02:52:30.38ID:bkFDlrr0 >>490
言い方が悪かったのかもしれんが
「イミュータブルであると、なぜ、誰にとって、どううれしいのか」
を説明してくれって言ってるわけだが
シンタックスシュガーとかぶっちゃけどうでもいいし
イミュータブルがどうとかもかなりどうでもいい(パフォーマンス問題が出ない限りは)
今の場合
「(aaa)という理由により、文字列をイミュータブルにすると
(bbb)という利点がプログラマーにあり
(ccc)という利点がユーザーにあります」
の
aaa と bbb と ccc 埋めてねってくらい
俺的にはxxxであるべきとかどうでもいいんですよ、そんなん主観的な感情論
言い方が悪かったのかもしれんが
「イミュータブルであると、なぜ、誰にとって、どううれしいのか」
を説明してくれって言ってるわけだが
シンタックスシュガーとかぶっちゃけどうでもいいし
イミュータブルがどうとかもかなりどうでもいい(パフォーマンス問題が出ない限りは)
今の場合
「(aaa)という理由により、文字列をイミュータブルにすると
(bbb)という利点がプログラマーにあり
(ccc)という利点がユーザーにあります」
の
aaa と bbb と ccc 埋めてねってくらい
俺的にはxxxであるべきとかどうでもいいんですよ、そんなん主観的な感情論
492デフォルトの名無しさん
2017/10/12(木) 02:59:54.14ID:0FMeS+81 >>485
そうしないようにfrozenで最適化したんでしょ。
そうしないようにfrozenで最適化したんでしょ。
493デフォルトの名無しさん
2017/10/12(木) 03:10:54.78ID:bkFDlrr0 んー、興味の対象が違うのかなぁ
ちょっぱやで書かしてくれる言語って意味でRuby使ってるようなところはあるので
ちょっぱやで書かしてくれる言語って意味でRuby使ってるようなところはあるので
494デフォルトの名無しさん
2017/10/12(木) 03:19:31.70ID:D7OLf+6g >ちょっぱやで書かしてくれる言語
>って意味でRuby使ってる
そうそう
Rubyは典型的なLLだからね
全部関数型で書きたければ
最初から関数型言語使うでしょ
>って意味でRuby使ってる
そうそう
Rubyは典型的なLLだからね
全部関数型で書きたければ
最初から関数型言語使うでしょ
495デフォルトの名無しさん
2017/10/12(木) 03:49:53.06ID:BE/Y4M/4 「Effective Ruby」の項目47 に書いてある。
ループ内のオブジェクト・リテラルを避けよう
ループの度に、オブジェクトが作られて、すぐにガベージになるから無駄。
オブジェクトをループの外に出すか、freeze するか
ARY = %w(a b c).map(&:freeze).freeze
p ARY #=> ["a", "b", "c"]
各要素をfreeze して、配列もfreeze する
Ruby 2.1 以降は、
"a".freeze
これで定数になる
ループ内のオブジェクト・リテラルを避けよう
ループの度に、オブジェクトが作られて、すぐにガベージになるから無駄。
オブジェクトをループの外に出すか、freeze するか
ARY = %w(a b c).map(&:freeze).freeze
p ARY #=> ["a", "b", "c"]
各要素をfreeze して、配列もfreeze する
Ruby 2.1 以降は、
"a".freeze
これで定数になる
496デフォルトの名無しさん
2017/10/12(木) 04:31:19.61ID:0FMeS+81 frozen_string_literal: true
497デフォルトの名無しさん
2017/10/12(木) 05:21:18.77ID:K4F4DzE/ 破壊的なのは全部!付きにしてくれたらよかったのに
498デフォルトの名無しさん
2017/10/12(木) 14:22:49.20ID:UWf9SeC0499デフォルトの名無しさん
2017/10/12(木) 14:23:59.29ID:UWf9SeC0500デフォルトの名無しさん
2017/10/12(木) 18:30:04.66ID:xdbkqR2O それはそれで冗長じゃねってオモ
501デフォルトの名無しさん
2017/10/12(木) 19:50:30.80ID:TdwSq1rR >>435 のスライドによるとruby4では
不変リテラル配列を @[1, 2, 3] で作れたり、
不変リテラルハッシュを @{ 'a' => 1, 'b' => 2 } で作れたり
出来るかもしれない
リテラル文字列も一律freezeなんてしないで @"string" っていう構文にすりゃよかったのに
不変リテラル配列を @[1, 2, 3] で作れたり、
不変リテラルハッシュを @{ 'a' => 1, 'b' => 2 } で作れたり
出来るかもしれない
リテラル文字列も一律freezeなんてしないで @"string" っていう構文にすりゃよかったのに
502デフォルトの名無しさん
2017/10/12(木) 20:21:23.42ID:D7OLf+6g >不変リテラル配列
Pythonのタプルじゃねーか
Pythonのタプルじゃねーか
503デフォルトの名無しさん
2017/10/12(木) 22:13:17.99ID:o8TlX9Z0 Pythonってタプルの実装は配列なの??
504デフォルトの名無しさん
2017/10/12(木) 22:28:59.06ID:apyXR2js タプルはタプル
行き当たりばったりなRubyとは違ってPythonにはシーケンスというプロトコルがあって、
タプルも配列もrangeも文字列もシーケンスなので統一的に扱える
行き当たりばったりなRubyとは違ってPythonにはシーケンスというプロトコルがあって、
タプルも配列もrangeも文字列もシーケンスなので統一的に扱える
505デフォルトの名無しさん
2017/10/12(木) 23:01:30.35ID:o8TlX9Z0 タプルはシーケンス!
それは他の言語と違うね
それは他の言語と違うね
506デフォルトの名無しさん
2017/10/13(金) 01:14:19.23ID:4cro6hGU おおっ! シーケンス! シーケンス!
言語機能として組み込まれ、特定の型のみに作用するなんて流石はパイソンだ
一方RubyにはEnumeratorが用意され、あらゆるクラス/オブジェクトに組み込めるのであった
言語機能として組み込まれ、特定の型のみに作用するなんて流石はパイソンだ
一方RubyにはEnumeratorが用意され、あらゆるクラス/オブジェクトに組み込めるのであった
507デフォルトの名無しさん
2017/10/13(金) 02:00:30.53ID:BCNZxjVm >>506
Pythonはジェネレータでクソ簡単にシーケンス作れるよ
Pythonはジェネレータでクソ簡単にシーケンス作れるよ
508デフォルトの名無しさん
2017/10/16(月) 17:23:10.90ID:DLEfDRSi a、bが配列の時、
a,sort + b とするとおかしくなる時があります。
文法上間違いなのでしょうか
(a.sort) + b で回避できますが
a,sort + b とするとおかしくなる時があります。
文法上間違いなのでしょうか
(a.sort) + b で回避できますが
509デフォルトの名無しさん
2017/10/16(月) 17:55:32.86ID:VwEzpL/B510デフォルトの名無しさん
2017/10/16(月) 19:31:26.51ID:VYP6d+8H >>508
実行可能な具体的なコードを出すと答える方も答えやすいよ
その上で何が起きるのか、本当はどうなって欲しいのかをあらかじめ言っておくとさらにいい
エラーが出るならばそのメッセージをつけて
一応聞いておくけど a,sort + b ってなってる部分はドットじゃなくてコンマなの?
実行可能な具体的なコードを出すと答える方も答えやすいよ
その上で何が起きるのか、本当はどうなって欲しいのかをあらかじめ言っておくとさらにいい
エラーが出るならばそのメッセージをつけて
一応聞いておくけど a,sort + b ってなってる部分はドットじゃなくてコンマなの?
511デフォルトの名無しさん
2017/10/17(火) 01:16:43.61ID:2ZuBshEM512デフォルトの名無しさん
2017/10/17(火) 01:28:33.52ID:7xVjwXXT なんかいろいろえーって感じ
513デフォルトの名無しさん
2017/10/17(火) 01:29:13.96ID:R2+/oC7k まともにタイプできんのか
514デフォルトの名無しさん
2017/10/17(火) 01:38:22.03ID:G9wCIPXR 確かにいろいろえーーって感じだが
とりあえずエラーの原因箇所はそこと違ったんじゃね
とりあえずエラーの原因箇所はそこと違ったんじゃね
515デフォルトの名無しさん
2017/10/17(火) 02:08:23.51ID:mcshzNIy516デフォルトの名無しさん
2017/10/17(火) 18:58:18.19ID:QpREnYGr redmine 関係のスレってない?
517デフォルトの名無しさん
2017/10/17(火) 19:01:44.02ID:mUW+58qQ 環境が分らないし、エラーの詳細もわからない
そもそもタイプミスでエラー起こしてる可能性もでてきた
これでどういう答えを出せと言うのか
そもそもタイプミスでエラー起こしてる可能性もでてきた
これでどういう答えを出せと言うのか
518デフォルトの名無しさん
2017/10/18(水) 17:37:04.21ID:Tt9aE97q519デフォルトの名無しさん
2017/10/18(水) 20:39:12.47ID:9LPwoyEe >>518
カッコは不要
'+' よりも '.' の方が結合強度が強い
演算子の優先順位については https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html に書いてある
…………と思いきや、'.' が書いてねーじゃん
'::' と同じ優先度と思っていい
つまりだ、カッコをつけるつけないで挙動が変わるって言うなら
それ以前の所がおかしいのは確定的に明らか
カッコは不要
'+' よりも '.' の方が結合強度が強い
演算子の優先順位については https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html に書いてある
…………と思いきや、'.' が書いてねーじゃん
'::' と同じ優先度と思っていい
つまりだ、カッコをつけるつけないで挙動が変わるって言うなら
それ以前の所がおかしいのは確定的に明らか
520デフォルトの名無しさん
2017/10/18(水) 20:46:38.65ID:cbmCwNcY そもそも問題の切り分けが出来てないっぽい
コード履歴取って一行ずつ変えて行けば
どこが原因か特定できるのに
コード履歴取って一行ずつ変えて行けば
どこが原因か特定できるのに
521デフォルトの名無しさん
2017/10/19(木) 20:29:50.54ID:L874x3oy522デフォルトの名無しさん
2017/10/20(金) 05:01:37.78ID:VjaZCXyR クラス毎にファイルわけたり、
多機能なクラスをシンプルなクラスに分けたりしてれば
おのずとエラー表示で何処が問題なのか分る
とは言っても、横着しちゃうのはあるあるだから、他人には言いづらい
多機能なクラスをシンプルなクラスに分けたりしてれば
おのずとエラー表示で何処が問題なのか分る
とは言っても、横着しちゃうのはあるあるだから、他人には言いづらい
523デフォルトの名無しさん
2017/10/20(金) 12:18:01.77ID:ICaMM6Vk Ruby自体が大クラス主義だけどね
バイナリデータもStringクラスで扱ってしまおうって考えは最たるもの
だからと言ってクラス/モジュールにちまちまと細分化しても
使う時にあれを使いたいこれを使いたいで結局ひとまとめにしちまうんだろうけど
さじ加減って大事だよな
バイナリデータもStringクラスで扱ってしまおうって考えは最たるもの
だからと言ってクラス/モジュールにちまちまと細分化しても
使う時にあれを使いたいこれを使いたいで結局ひとまとめにしちまうんだろうけど
さじ加減って大事だよな
524デフォルトの名無しさん
2017/10/20(金) 21:15:16.18ID:fTxZK5d3 昔rubyの本を読んだ時はさっぱり判らなかったけど、
perlとpythonが判った後で読んだら全部最初から知ってる感じになるな
perlとpythonが判った後で読んだら全部最初から知ってる感じになるな
525デフォルトの名無しさん
2017/10/20(金) 21:41:20.58ID:4/l8vBn9 大クラスでもメソッドは
粒度が細かい方が良いと思う
粒度が細かい方が良いと思う
526デフォルトの名無しさん
2017/10/21(土) 02:31:25.02ID:KRuC/jyb 枝分かれと繰り返しで素数判定プログラム書く課題出て適当にやってたらそれっぽいものができちゃったんだけど、なんで出来たの分からないから助けて
ソースは以下
def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end
ソースは以下
def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end
527デフォルトの名無しさん
2017/10/21(土) 02:44:37.46ID:KRuC/jyb528デフォルトの名無しさん
2017/10/21(土) 02:52:38.24ID:DH1cG8CY529デフォルトの名無しさん
2017/10/21(土) 03:42:48.43ID:W+SO0xqJ >>526
def prime(n)
return 'Not Defined' if n < 2
!(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
end
Rubyっぽくないコードだったんで短く書き直してみた
def prime(n)
return 'Not Defined' if n < 2
!(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
end
Rubyっぽくないコードだったんで短く書き直してみた
530デフォルトの名無しさん
2017/10/21(土) 06:35:15.86ID:/5Z1bcnO メモ化しろ。
つまり、答え(素数)をキャッシュする
11 を、[ 2, 3, 5, 7 ]の順番で割って、割り切れなければ、11は素数だろ。
まあ、正確には、11を、[ 2, 3 ]で割って、割り切れなければ素数だが
つまり、√11 までの素数で割って、割り切れなければ素数
つまり、答え(素数)をキャッシュする
11 を、[ 2, 3, 5, 7 ]の順番で割って、割り切れなければ、11は素数だろ。
まあ、正確には、11を、[ 2, 3 ]で割って、割り切れなければ素数だが
つまり、√11 までの素数で割って、割り切れなければ素数
531デフォルトの名無しさん
2017/10/21(土) 07:34:26.85ID:6mSBZ2Ul532デフォルトの名無しさん
2017/10/21(土) 07:57:33.68ID:QO4PPX4g533デフォルトの名無しさん
2017/10/21(土) 09:06:12.98ID:8VGNYjri 存在しない配列やハッシュに値を入れようとしたら、
初期化して入れてくれればいいのに
初期化して入れてくれればいいのに
534デフォルトの名無しさん
2017/10/21(土) 11:05:59.68ID:zW3TQJM1535デフォルトの名無しさん
2017/10/21(土) 13:58:53.09ID:AGKxZ0DW >>531
大クラス主義についてはmatzやko1が話してる
http://www.atmarkit.co.jp/news/200712/25/ruby.html
> まつもと 1.8にもEnumeratorとGeneratorという2つの似たようなライブラリが
> あったんですけど、それが1.9ではEnumeratorに統一され、組み込みになりました。
> ここら辺、ああ、Rubyはやっぱり“大クラス主義”だなって思いますね。
>
> ――大クラス主義とは?
>
> 笹田 似たような機能のものを大きなクラスにまとめるという方針です。
> たくさんあると覚えるのも大変だし、使い分けられないから、まとめちゃう。
大クラス主義についてはmatzやko1が話してる
http://www.atmarkit.co.jp/news/200712/25/ruby.html
> まつもと 1.8にもEnumeratorとGeneratorという2つの似たようなライブラリが
> あったんですけど、それが1.9ではEnumeratorに統一され、組み込みになりました。
> ここら辺、ああ、Rubyはやっぱり“大クラス主義”だなって思いますね。
>
> ――大クラス主義とは?
>
> 笹田 似たような機能のものを大きなクラスにまとめるという方針です。
> たくさんあると覚えるのも大変だし、使い分けられないから、まとめちゃう。
536デフォルトの名無しさん
2017/10/21(土) 16:41:36.24ID:fsyriQnf 言語の設計と言語の使い方は別だ
クラス毎にファイルをわけたり、多機能クラスをシンプルなクラスにわけたりするのを勧めたのは、
エラー表示が効果的になる言語の使い方の話だ
分ってると思うけどそれ外にも、ワンライナーや関数型等の書き方で使いこなせるようになっている
クラス毎にファイルをわけたり、多機能クラスをシンプルなクラスにわけたりするのを勧めたのは、
エラー表示が効果的になる言語の使い方の話だ
分ってると思うけどそれ外にも、ワンライナーや関数型等の書き方で使いこなせるようになっている
537デフォルトの名無しさん
2017/10/21(土) 18:01:16.00ID:ZBz0JWdz538デフォルトの名無しさん
2017/10/21(土) 18:33:01.23ID:AGKxZ0DW Ruby自体が大クラス主義だから利用者も大クラス主義であるべきだとは俺も思ってないよ
だからといって過剰な程にクラスを派生しまくるのは、型を束縛しないダックタイピングということもあって、
利便性が下がるんじゃないかなーとも思ってる
そりゃStringとHashとThreadが1つのクラスになっていたら発狂するけどね
だからといって過剰な程にクラスを派生しまくるのは、型を束縛しないダックタイピングということもあって、
利便性が下がるんじゃないかなーとも思ってる
そりゃStringとHashとThreadが1つのクラスになっていたら発狂するけどね
539デフォルトの名無しさん
2017/10/21(土) 21:09:41.23ID:6mSBZ2Ul540デフォルトの名無しさん
2017/10/21(土) 21:20:09.28ID:QO4PPX4g >>539
教条主義的なポリシーなんて要らないというポリシーなんじゃね?w
教条主義的なポリシーなんて要らないというポリシーなんじゃね?w
541デフォルトの名無しさん
2017/10/22(日) 00:40:32.24ID:kM4Rb+14 まだID変えて自演しとんのか
542デフォルトの名無しさん
2017/10/22(日) 01:31:42.03ID:dJ6mfyJW 大クラス主義の話になったところで
じゃあみんな具体的に
どれくらいの大きさのクラスにしてる?
目安は一クラスあたり何行?
じゃあみんな具体的に
どれくらいの大きさのクラスにしてる?
目安は一クラスあたり何行?
543デフォルトの名無しさん
2017/10/22(日) 02:36:33.83ID:sDdgCD4Q 多くても500行ぐらいだろうな。
1000行いったら嫌悪感が出る
1000行いったら嫌悪感が出る
544デフォルトの名無しさん
2017/10/22(日) 03:14:27.15ID:yCjESUvF 俺の場合はクラスの大きさに目安はないな
100行に満たないものもあれば1000行を超えるものもあるし
それよりもメソッド(Cなら関数)があまり長くならないように気をつけてる
具体的には80文字×25行のスクリーンからはみ出ないくらい
なんちって
100行に満たないものもあれば1000行を超えるものもあるし
それよりもメソッド(Cなら関数)があまり長くならないように気をつけてる
具体的には80文字×25行のスクリーンからはみ出ないくらい
なんちって
545デフォルトの名無しさん
2017/10/22(日) 03:14:46.78ID:rLFHcAK9 目安はサンディメッツルール
2017/10/22(日) 11:15:50.70ID:1YBr+HPt
深いネストのifがあって、Cだったら { に対応する } に飛べば範囲が判るけど、
rubyだとどうするの?
rubyだとどうするの?
547名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 11:21:48.06ID:ammmliXf >>546
rubynに限らず、エディターのプラグインで、対応するブラケットに飛ぶのが有る。
rubynに限らず、エディターのプラグインで、対応するブラケットに飛ぶのが有る。
548デフォルトの名無しさん
2017/10/25(水) 22:01:25.02ID:EQUdIXJ1 何も見ずに書けるくらいに慣れた言語はRubyが初めてで便利に使ってたんだけど、最近JavaというかKotlinやってた
んで戻ってきた
インスタンス変数が名前だけでアクセスし放題なのってすげえ便利だけどすげえ邪悪だな!
行く前はなんとも思わなかったけど@hogeとか生であちこち書いてあるとなんか不安になるようになったぞ!
んで戻ってきた
インスタンス変数が名前だけでアクセスし放題なのってすげえ便利だけどすげえ邪悪だな!
行く前はなんとも思わなかったけど@hogeとか生であちこち書いてあるとなんか不安になるようになったぞ!
549デフォルトの名無しさん
2017/10/25(水) 22:17:30.49ID:aatZ8FSF 要はattrでゲッターセッター使いまくりってことだよね
Rubyは便利だけどそれが時にかえって落とし穴になる
Rubyは便利だけどそれが時にかえって落とし穴になる
550デフォルトの名無しさん
2017/10/25(水) 22:17:41.41ID:J7YSmtyq railsの前からruby使いで今でもrails何それな人っているんだろうか
551デフォルトの名無しさん
2017/10/25(水) 22:22:21.34ID:Okq57FT4 このスレにはWinでRuby使ってる絶滅危惧種がちらほら生息しているみたいだから割といるんじゃないかな
552デフォルトの名無しさん
2017/10/25(水) 22:34:52.93ID:J7YSmtyq winでperlだとactiveperlが定番だけど、rubyだと何だろう
553デフォルトの名無しさん
2017/10/25(水) 23:12:44.96ID:0GYD+24d554デフォルトの名無しさん
2017/10/25(水) 23:26:24.82ID:6l1ALuPm555デフォルトの名無しさん
2017/10/25(水) 23:37:36.75ID:SowBE9iE >>553
インスタンス変数を直で使う可能性がわりと残ってるということ自体がキモいというのはあるにはある
それだと「いんすたんすへんすうはつかわないでください」と利用マニュアルやらコーディング規約やらに赤字で書くのと変わらんしな
インスタンス変数を直で使う可能性がわりと残ってるということ自体がキモいというのはあるにはある
それだと「いんすたんすへんすうはつかわないでください」と利用マニュアルやらコーディング規約やらに赤字で書くのと変わらんしな
556デフォルトの名無しさん
2017/10/25(水) 23:40:57.81ID:bjMRduYA winでrubyだけどUnicode引数が扱えないのと
パスにUnicodeが混じると動かないのは治った?
パスにUnicodeが混じると動かないのは治った?
557デフォルトの名無しさん
2017/10/25(水) 23:47:10.89ID:0GYD+24d >>556
そんくらい自分で試せよ
そんくらい自分で試せよ
558デフォルトの名無しさん
2017/10/26(木) 00:04:52.44ID:1jsCLZfy559デフォルトの名無しさん
2017/10/26(木) 00:27:50.55ID:Bn4jQy1s kotlinはインスタンス変数を直接作れないし触れない
同名のセッターとゲッター経由でのみアクセスする
Rubyでいうとこのattr_accessorだけしか存在しない状態
まあ他の言語の話はどこまでも広がるから程々に
同名のセッターとゲッター経由でのみアクセスする
Rubyでいうとこのattr_accessorだけしか存在しない状態
まあ他の言語の話はどこまでも広がるから程々に
560デフォルトの名無しさん
2017/10/26(木) 00:44:34.86ID:+U1JRDPb インスタンス変数を直接使うよりattr_readerとかattr_accessorを経由するようにしてるなあ
主にタイポ対策として
主にタイポ対策として
561デフォルトの名無しさん
2017/10/26(木) 00:52:35.48ID:1jsCLZfy @で直接インスタンス変数を使うか
アクセサを経由するかってことか
クラス内なら直接使ってもいいと思う
クラス外からアクセサを使う方が問題
アクセサを経由するかってことか
クラス内なら直接使ってもいいと思う
クラス外からアクセサを使う方が問題
562デフォルトの名無しさん
2017/10/26(木) 01:37:32.31ID:bdhLTBwb >>556
すべてのOS・言語で、
ユーザー名・PC名・パスなどのシステム要件には、半角英数字しか使うな。
誰も日本語ではテストしていないし、すべてのアプリでテストしていないから
半角空白も使うな。
「a b」などは、2つの引数に扱われてしまうから、バグる
Unicode の4バイト文字などには、多くのアプリが対応していない。
例えば、中国の地名の「深せん」の「せん」は、TeraPad では対応していない
こういうアプリが一杯ある。
特に、圧縮・解凍アプリでは、日本語のパスは使えない
すべてのOS・言語で、
ユーザー名・PC名・パスなどのシステム要件には、半角英数字しか使うな。
誰も日本語ではテストしていないし、すべてのアプリでテストしていないから
半角空白も使うな。
「a b」などは、2つの引数に扱われてしまうから、バグる
Unicode の4バイト文字などには、多くのアプリが対応していない。
例えば、中国の地名の「深せん」の「せん」は、TeraPad では対応していない
こういうアプリが一杯ある。
特に、圧縮・解凍アプリでは、日本語のパスは使えない
563デフォルトの名無しさん
2017/10/26(木) 01:51:18.80ID:1RkkpTof >>559
通常はプロパティのみで実体の変数にアクセスする場合に特別なキーワードを使う
https://kotlinlang.org/docs/reference/properties.html#backing-fields
>>560
privateなattr_accessor/attr_writerを用意するより
@fooのほうがインスタンス内部の状態にアクセスしてるのが直感的に見えるから個人的には好みかな
通常はプロパティのみで実体の変数にアクセスする場合に特別なキーワードを使う
https://kotlinlang.org/docs/reference/properties.html#backing-fields
>>560
privateなattr_accessor/attr_writerを用意するより
@fooのほうがインスタンス内部の状態にアクセスしてるのが直感的に見えるから個人的には好みかな
564デフォルトの名無しさん
2017/10/26(木) 01:57:55.82ID:1RkkpTof565デフォルトの名無しさん
2017/10/26(木) 07:56:59.67ID:BUcDTzfg ディレクトリツリーを再帰処理したときにディレクトリ名に“[]{}”があって
Dir.glob(File.join(subdir,"*")) # subdir = "photo[2017]"
てな感じでハマった
Dir.glob(File.join(subdir,"*")) # subdir = "photo[2017]"
てな感じでハマった
566デフォルトの名無しさん
2017/10/26(木) 08:30:22.65ID:Bn4jQy1s globは昔からへなちょこだよ
入ってるファイル名がglob安全だと事前にわかってるディレクトリにしか使ったらだめだよ
入ってるファイル名がglob安全だと事前にわかってるディレクトリにしか使ったらだめだよ
567デフォルトの名無しさん
2017/10/26(木) 11:34:08.16ID:v4GCj7LM 同意せざるを得ない
568デフォルトの名無しさん
2017/10/28(土) 05:14:14.61ID:3gpZJih/ winのRubyで日本語できないとか言ってる奴いるけど、
UTF16Nの文字コードも知らないで適当にやってるからじゃないの?
UTF16Nの文字コードも知らないで適当にやってるからじゃないの?
569デフォルトの名無しさん
2017/10/28(土) 11:08:15.45ID:YrbVG7kU 原因は一つだけじゃない
エンコ間違いを文字化けと言ってしまうくらい
知識が貧弱すぎる
エンコ間違いを文字化けと言ってしまうくらい
知識が貧弱すぎる
570デフォルトの名無しさん
2017/10/28(土) 11:16:36.37ID:xCMEGXaW 正確には、エンコードの推測間違いが文字化け
571デフォルトの名無しさん
2017/10/28(土) 11:19:57.77ID:YrbVG7kU それも違うよ
本来文字化けは通信回線のエラーで発生するものを指してた
本来文字化けは通信回線のエラーで発生するものを指してた
572デフォルトの名無しさん
2017/10/28(土) 11:56:59.11ID:outOme0N まず、環境変数やコマンドラインオプションの -E で utf-8 を指定しないと、ARGVがutf-8にならないので
正確なコマンドライン引数を取得できない*バグ*がある。
さらに、ディレクトリのファイル一覧を取得する時に、encodingオプションを指定してutf-8にしないと、
ユニコードのファイル名を取得できないという*バグ*がある。
作ってる人たちは仕様だと思ってるが、こんなの誰も嬉しくないし、単なるバグ。
だからrubyinstaller2の人も-Eutf-8をデフォルトにしようとした
ソースコードがデフォルトでutf-8の時代に、何でこんなことになってるのか理解しがたい
でもそれ以外のことは相当windowsのために頑張ってくれている
pythonよりマシでnode.jsより劣ってる
正確なコマンドライン引数を取得できない*バグ*がある。
さらに、ディレクトリのファイル一覧を取得する時に、encodingオプションを指定してutf-8にしないと、
ユニコードのファイル名を取得できないという*バグ*がある。
作ってる人たちは仕様だと思ってるが、こんなの誰も嬉しくないし、単なるバグ。
だからrubyinstaller2の人も-Eutf-8をデフォルトにしようとした
ソースコードがデフォルトでutf-8の時代に、何でこんなことになってるのか理解しがたい
でもそれ以外のことは相当windowsのために頑張ってくれている
pythonよりマシでnode.jsより劣ってる
573デフォルトの名無しさん
2017/10/28(土) 17:18:37.05ID:GkEAGE6K windowsならしょうがないね
574デフォルトの名無しさん
2017/10/28(土) 17:41:59.12ID:yTnVd91+ 根本的にスクリプトのパスをUnicodeで扱ってないから、スクリプトにlocaleで表せないUnicodeの文字が含まれるだけで実行できない糞仕様
575デフォルトの名無しさん
2017/10/29(日) 15:18:20.54ID:jMcUbzmZ やり方知らないだけじゃないの?
576デフォルトの名無しさん
2017/10/29(日) 18:20:39.60ID:cEiLc8+m やろうと思えばできる、とデファクトがデフォルトではない、との間には深くて深い溝が
577デフォルトの名無しさん
2017/10/30(月) 07:27:16.07ID:Jvh4uG2g え、できるの? どうやるの? 教えて
578デフォルトの名無しさん
2017/10/31(火) 08:42:53.03ID:23Zr0FFS なるほど
http://magazine.rubyist.net/?preRubyKaigi2017-01
に挙がってるRuby3.0の三つの課題って
なんというか、C言語ですらクリアしてるような・・・なんだろう、なんで今更
そんな、プログラミングの最黎明期まで時間を戻して修正しなければならない事態って一体
http://magazine.rubyist.net/?preRubyKaigi2017-01
に挙がってるRuby3.0の三つの課題って
なんというか、C言語ですらクリアしてるような・・・なんだろう、なんで今更
そんな、プログラミングの最黎明期まで時間を戻して修正しなければならない事態って一体
579デフォルトの名無しさん
2017/10/31(火) 10:22:53.85ID:qfHwvl41 型を持たないから難しんじゃねーの?
580デフォルトの名無しさん
2017/10/31(火) 10:54:16.58ID:0YDRSLxm Rubyはレジスタ利用できないから30年遅れてるとか喚いてた人と同じ人かな
581デフォルトの名無しさん
2017/10/31(火) 11:27:56.74ID:3dsXrBDq 下手にRuby本体をいじるより、TypeScriptみたいなものを目指して欲しい
Matzの発表を見ると、中途半端な実装で終わりそうだから
Matzの発表を見ると、中途半端な実装で終わりそうだから
582デフォルトの名無しさん
2017/10/31(火) 11:41:18.35ID:f3HKFkZK Rubyはクラス定義自体が動的で、それを悪用したメタプログラミング(笑)とかいうハックが横行しているから静的解析でなんとかするのは無理がある
Rails界隈も含めて現実的にまともに役立つものにするにはTypeScriptみたいな後付け方式しかないだろうけど、
「型書きたくないでござる」(笑)に真っ向から反するのであり得ないだろうね
Rails界隈も含めて現実的にまともに役立つものにするにはTypeScriptみたいな後付け方式しかないだろうけど、
「型書きたくないでござる」(笑)に真っ向から反するのであり得ないだろうね
583デフォルトの名無しさん
2017/10/31(火) 11:46:12.10ID:23Zr0FFS >>580
俺が言ってるわけじゃなくて、Ruby界隈の人が言ってるんだよ
君の文章も借りて平たく言うと
Rubyは実行速度が遅くて、静的型が無くて、並列実行が無くて
(何十年かは知らないが) 遅れてるから
Ruby3.0で上記3つをなんとかしたい
って事でしょ
いや実際問題ないんだったら、Ruby3.0の目玉になんかするかね
俺が言ってるわけじゃなくて、Ruby界隈の人が言ってるんだよ
君の文章も借りて平たく言うと
Rubyは実行速度が遅くて、静的型が無くて、並列実行が無くて
(何十年かは知らないが) 遅れてるから
Ruby3.0で上記3つをなんとかしたい
って事でしょ
いや実際問題ないんだったら、Ruby3.0の目玉になんかするかね
584デフォルトの名無しさん
2017/10/31(火) 12:02:14.47ID:qfHwvl41 Javascriptみたいに
strictって文頭につければ厳しくチェックできるように
typeって文頭につければ型をつけれるようにとか出来ればいいな
strictって文頭につければ厳しくチェックできるように
typeって文頭につければ型をつけれるようにとか出来ればいいな
585デフォルトの名無しさん
2017/10/31(火) 12:37:58.97ID:f3HKFkZK >>584
付けるならソースファイルじゃなくてクラスに対してだと思う
Rubyの場合、型付けをどうするかよりも、そもそも型というものをどう定義するかが問題
Rubyのクラス定義ってクラスの静的な構造を表してるんじゃなくて、メモリ上にクラスを定義する手続きなんだよ
実行してみないとどんなクラスになるかが分かんないの
付けるならソースファイルじゃなくてクラスに対してだと思う
Rubyの場合、型付けをどうするかよりも、そもそも型というものをどう定義するかが問題
Rubyのクラス定義ってクラスの静的な構造を表してるんじゃなくて、メモリ上にクラスを定義する手続きなんだよ
実行してみないとどんなクラスになるかが分かんないの
586デフォルトの名無しさん
2017/10/31(火) 15:23:54.17ID:CDGz4c1c ここは初心者スレなので初心者に役立つ会話をしようね
リアルで話し相手がいないレス乞食が常駐してるとうざいよ
リアルで話し相手がいないレス乞食が常駐してるとうざいよ
587デフォルトの名無しさん
2017/10/31(火) 18:39:39.63ID:HaPb6HyZ Rubyのバージョンを上げるんじゃなくて、別の言語をまた作るべきだな
何か言語を使っていると、こうだったらもっと楽なのにというネタがいろいろ溜まってきて、
それを解決した言語が現れる
それを使っているとまたネタが溜まってくる、というサイクルで進化していくもので、
それはバージョンアップで対応できるような内容ではないのが普通
何か言語を使っていると、こうだったらもっと楽なのにというネタがいろいろ溜まってきて、
それを解決した言語が現れる
それを使っているとまたネタが溜まってくる、というサイクルで進化していくもので、
それはバージョンアップで対応できるような内容ではないのが普通
588デフォルトの名無しさん
2017/10/31(火) 21:16:56.30ID:23Zr0FFS まぁはっきり言ってそれは無理だね
言語のシェアみりゃ分かるが、昔からある言語が未だに強い
その言語を使うしかない(他にない)、ってぐらい追い込まないと
新規の言語が広まるのは無理(Swiftとか)
特にRubyの場合は今の一般的な常識でまともな言語に作り直したら
C#やJavaとそう変わりない物が出来上がるだけで、だったらC#やJava使えば?ってなる
これはちょうど、新たに希望の党を作って民進党のリベラルを排除して
自民党と何が違うのかよくわからなくなって、だったら実績のある自民党で良いじゃん、な
希望の党みたいなもの
逆に今のRubyをどんどん改良していけばよいかと言われると、これも民進党と同じでジリ貧
C#みたいに互換性を維持しつつ新しい機能を取り入れまくって進化している言語もあるが
Rubyがそうなれなかったのは、最初の一歩が既におかしかったから
今頃、静的型がどうのこうの言ってるのは最初に犯した過ちを今まで引きづってて
2020年のオリンピックまでにはRuby3.0で云々言ってるわけだが
逆に間違えたからこそ、一部の狂信者に支持されてここまで来たわけで
マトモにしたらJava、C#、C++などのメジャー言語とガチンコになるし、狂信者も付かない
押すも引くも、結局どうにもならんということ
言語のシェアみりゃ分かるが、昔からある言語が未だに強い
その言語を使うしかない(他にない)、ってぐらい追い込まないと
新規の言語が広まるのは無理(Swiftとか)
特にRubyの場合は今の一般的な常識でまともな言語に作り直したら
C#やJavaとそう変わりない物が出来上がるだけで、だったらC#やJava使えば?ってなる
これはちょうど、新たに希望の党を作って民進党のリベラルを排除して
自民党と何が違うのかよくわからなくなって、だったら実績のある自民党で良いじゃん、な
希望の党みたいなもの
逆に今のRubyをどんどん改良していけばよいかと言われると、これも民進党と同じでジリ貧
C#みたいに互換性を維持しつつ新しい機能を取り入れまくって進化している言語もあるが
Rubyがそうなれなかったのは、最初の一歩が既におかしかったから
今頃、静的型がどうのこうの言ってるのは最初に犯した過ちを今まで引きづってて
2020年のオリンピックまでにはRuby3.0で云々言ってるわけだが
逆に間違えたからこそ、一部の狂信者に支持されてここまで来たわけで
マトモにしたらJava、C#、C++などのメジャー言語とガチンコになるし、狂信者も付かない
押すも引くも、結局どうにもならんということ
589デフォルトの名無しさん
2017/10/31(火) 21:36:49.59ID:7Ixc7xPG もちろん新規言語がそう簡単に広まるわけないが
Rubyが登場したときにも昔の言語はあったわけで
自由に選択できても広まったし
今でも囲い込みされてるSwiftより
言語ランキングで上位だったりする
政治の比喩を持ち出して印象操作してるけど
ScalaとかGoとか新言語どんどん出てきて
JavaやC#ほどじゃないけどそれなりに使われてるから
むしろ昔より新言語が使われてる位だと思う
Rubyが登場したときにも昔の言語はあったわけで
自由に選択できても広まったし
今でも囲い込みされてるSwiftより
言語ランキングで上位だったりする
政治の比喩を持ち出して印象操作してるけど
ScalaとかGoとか新言語どんどん出てきて
JavaやC#ほどじゃないけどそれなりに使われてるから
むしろ昔より新言語が使われてる位だと思う
590デフォルトの名無しさん
2017/10/31(火) 21:41:41.86ID:kBfCDZdZ LLスレから追い出された連中が相手してもらえると思って来てるからな
彼らは別にRubyを使えるわけじゃないから厄介だ
彼らは別にRubyを使えるわけじゃないから厄介だ
591デフォルトの名無しさん
2017/10/31(火) 21:49:47.48ID:23Zr0FFS >自由に選択できても広まったし
>今でも囲い込みされてるSwiftより
>言語ランキングで上位だったりする
どうでもよいことだが、それは昔からある言語の方が
新規の言語より強いという裏付けにしかなってないのでは?
新たに言語を作れば今のRubyのポジションは捨てて0からなわけで
今の時代に何の後ろ盾もない状態で新たに言語作ったって
>今でも囲い込みされてるSwiftより
>言語ランキングで上位だったりする
どうでもよいことだが、それは昔からある言語の方が
新規の言語より強いという裏付けにしかなってないのでは?
新たに言語を作れば今のRubyのポジションは捨てて0からなわけで
今の時代に何の後ろ盾もない状態で新たに言語作ったって
592デフォルトの名無しさん
2017/10/31(火) 22:02:16.15ID:HaPb6HyZ どんな時代なんだ?
593デフォルトの名無しさん
2017/10/31(火) 22:04:27.90ID:7Ixc7xPG >>591
>昔からある言語の方が
>新規の言語より強いという
>裏付けにしかなってないのでは?
「昔からある言語」も昔は
「新規の言語」だったんだよ
もし常に昔の言語の方が強かったら
永久に世代交代しないで
FortranとかLispがずっと主流になってるはずだろ?
>昔からある言語の方が
>新規の言語より強いという
>裏付けにしかなってないのでは?
「昔からある言語」も昔は
「新規の言語」だったんだよ
もし常に昔の言語の方が強かったら
永久に世代交代しないで
FortranとかLispがずっと主流になってるはずだろ?
594デフォルトの名無しさん
2017/10/31(火) 22:23:05.12ID:23Zr0FFS 時代背景を全く考慮しなければそうなるね
595デフォルトの名無しさん
2017/10/31(火) 22:39:42.30ID:HaPb6HyZ だから、かつては受け入れられた新しい言語が今は受け入れられない時代背景を説明しろ
596デフォルトの名無しさん
2017/10/31(火) 22:55:05.06ID:kGPpeMmk597デフォルトの名無しさん
2017/11/01(水) 01:37:44.29ID:nt6bNFBd やっほー
discordrbについて聞きたいんだけどこのスレでいいんかな
discordrbについて聞きたいんだけどこのスレでいいんかな
598デフォルトの名無しさん
2017/11/01(水) 02:02:23.05ID:kQ1wt9JW599デフォルトの名無しさん
2017/11/01(水) 02:19:40.62ID:Z130aY0S >>596
それは今の主流言語がさらに進化するだけ
いくつが理由がありそうだけど、みんなそんなに言語に飢えてないし
(おおむね満足している、というか供給過多)
光るアイデアを持った新たな言語が生まれても
メジャー言語がパクれば終わりだし、皆がそれを望んでる
何か光るものを見出しても
それだけでその言語を使おうということにはならない
仮に新しい言語を作るにも、今時は求められるものが高すぎるので
個人では手に負えないし、そもそも個人で作った言語など
昔から存在していて実績があるとかでもない限り、誰も使わん
他、既存の言語の資産が、C言語が登場した当時と比べて
というか比べられないほど凄いことになってる
世界中のプログラマがひたすら書きまくったから
一例としてLinuxのカーネルのソースコードの行数の推移
1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000
それは今の主流言語がさらに進化するだけ
いくつが理由がありそうだけど、みんなそんなに言語に飢えてないし
(おおむね満足している、というか供給過多)
光るアイデアを持った新たな言語が生まれても
メジャー言語がパクれば終わりだし、皆がそれを望んでる
何か光るものを見出しても
それだけでその言語を使おうということにはならない
仮に新しい言語を作るにも、今時は求められるものが高すぎるので
個人では手に負えないし、そもそも個人で作った言語など
昔から存在していて実績があるとかでもない限り、誰も使わん
他、既存の言語の資産が、C言語が登場した当時と比べて
というか比べられないほど凄いことになってる
世界中のプログラマがひたすら書きまくったから
一例としてLinuxのカーネルのソースコードの行数の推移
1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000
600デフォルトの名無しさん
2017/11/01(水) 02:42:46.97ID:Z130aY0S 建築がどうのこうの言ったって建築に互換性は関係ないしな
セキスイだろうがダイワだろうが、基本的にどうでもよい
車もそうだし、というか、ほとんどの物は自由競争の名のもとに
メーカー間の互換性を気にしなくてもよいようになってるんだが
(ハードウェア業界はわりと規格をきっちりやる)
ソフトウェアだけは互換性の壁が異常
この辺、なにか
フォトショップのデータを山のように持ってればフォトショップを使い続けるしかないし
MSOfficeのデータを山のように持ってればMSOfficeを使い続けるしかない
値段は大手企業の良心にかかってるというか、不当に値段を吊り上げられても、割と買うしかない
パチもんもあるけど、互換性が完璧ではないしな
まさかRubyでPythonのコードが走るわけないし
セキスイだろうがダイワだろうが、基本的にどうでもよい
車もそうだし、というか、ほとんどの物は自由競争の名のもとに
メーカー間の互換性を気にしなくてもよいようになってるんだが
(ハードウェア業界はわりと規格をきっちりやる)
ソフトウェアだけは互換性の壁が異常
この辺、なにか
フォトショップのデータを山のように持ってればフォトショップを使い続けるしかないし
MSOfficeのデータを山のように持ってればMSOfficeを使い続けるしかない
値段は大手企業の良心にかかってるというか、不当に値段を吊り上げられても、割と買うしかない
パチもんもあるけど、互換性が完璧ではないしな
まさかRubyでPythonのコードが走るわけないし
601デフォルトの名無しさん
2017/11/01(水) 07:50:12.58ID:uQFQAfJE 説得力が全くない
602デフォルトの名無しさん
2017/11/01(水) 17:44:59.02ID:gYykKPjL 3DCG目的で、答えが同じになる浮動小数点を含んだ別々の計算で、
結果にズレのない同じ数値になるようにするにはどうしたらいいの?
結果にズレのない同じ数値になるようにするにはどうしたらいいの?
603デフォルトの名無しさん
2017/11/01(水) 17:46:43.92ID:K6DgRYf4 >別々の計算
式が違うって意味なら結果が変わっても仕方ない
何桁まで使うかを自分で決める
式が違うって意味なら結果が変わっても仕方ない
何桁まで使うかを自分で決める
604デフォルトの名無しさん
2017/11/01(水) 17:48:34.39ID:K6DgRYf4 あと
>浮動小数点を含んだ
ここもちょっとあいまいだな
BCDとかを除外するのか使ってもいいのか
いまいちどっちともとれなくもないこともない
>浮動小数点を含んだ
ここもちょっとあいまいだな
BCDとかを除外するのか使ってもいいのか
いまいちどっちともとれなくもないこともない
605デフォルトの名無しさん
2017/11/01(水) 19:13:42.89ID:kQ1wt9JW >>602
浮動小数点数の計算誤差なんて、値と式によっていくらでも蓄積されるから、割り切りが必要だぞ
極端な例をCで言うけど、floatの精度で一致させるつもりでdoubleを使っても一致しないことも出てくる
rubyだと標準ライブラリに含まれるbigdecimalライブラリがあるけど、
これも無理数だと計算誤差が出てくるわけだし
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
浮動小数点数の計算誤差なんて、値と式によっていくらでも蓄積されるから、割り切りが必要だぞ
極端な例をCで言うけど、floatの精度で一致させるつもりでdoubleを使っても一致しないことも出てくる
rubyだと標準ライブラリに含まれるbigdecimalライブラリがあるけど、
これも無理数だと計算誤差が出てくるわけだし
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
606デフォルトの名無しさん
2017/11/01(水) 20:07:42.50ID:uQFQAfJE Rationalクラスなら誤差出ない
607デフォルトの名無しさん
2017/11/01(水) 20:47:39.78ID:kQ1wt9JW608デフォルトの名無しさん
2017/11/01(水) 20:53:14.66ID:uQFQAfJE マクローリン展開で
609デフォルトの名無しさん
2017/11/01(水) 21:13:10.79ID:mbpKs61j マクローリン展開でどうやって誤差なしで計算するのw
610デフォルトの名無しさん
2017/11/01(水) 21:16:19.51ID:uQFQAfJE 真の値である必要は無い
二通りの計算が同じになって欲しいんでしょ
どんなコンピュータ持ってきても円の面積すら誤差なしで計算できないぞ
二通りの計算が同じになって欲しいんでしょ
どんなコンピュータ持ってきても円の面積すら誤差なしで計算できないぞ
611デフォルトの名無しさん
2017/11/01(水) 23:37:46.94ID:Oby+I+5u 宇宙船でも、円周率の誤差のせいで、目的地にたどりつけないから、double 型を使ってる
float だと精度が足りないから
float だと精度が足りないから
612デフォルトの名無しさん
2017/11/02(木) 00:32:00.52ID:iVcltcyL >>610
次の命題Pが真であるといっているんだよね?
命題P
任意のマクローリン展開可能な関数f:R -> Rに対して
適当な次元で切り上げたものをgとすると、
任意のr, r' ∈ Q に対して
g(r) = g(r') => f(r) = f(r')
しかしr'の任意の近傍Dに対して
g(r) = g(r') => f(r) = f(r') (r ∈ D)
は、自明なfを除き明らかに成り立たない。
よってその論理はおかしいよ。
次の命題Pが真であるといっているんだよね?
命題P
任意のマクローリン展開可能な関数f:R -> Rに対して
適当な次元で切り上げたものをgとすると、
任意のr, r' ∈ Q に対して
g(r) = g(r') => f(r) = f(r')
しかしr'の任意の近傍Dに対して
g(r) = g(r') => f(r) = f(r') (r ∈ D)
は、自明なfを除き明らかに成り立たない。
よってその論理はおかしいよ。
613デフォルトの名無しさん
2017/11/02(木) 00:50:02.65ID:c5hpxlFZ614デフォルトの名無しさん
2017/11/02(木) 04:58:30.09ID:S5CQdMtg 誤差のあるPC1
誤差のあるPC2
PC1とPC2で同じ結果になったら合格です!!!
誤差のあるPC2
PC1とPC2で同じ結果になったら合格です!!!
615デフォルトの名無しさん
2017/11/02(木) 06:00:37.83ID:RnqR+Yur 10.0 , 10.0 , 0.0 の座標にある頂点に、
Z軸を軸とした45度の回転を正負どちらの方向に加えても、きっちりX軸やY軸にのってくれなくて、
頂点が同じ座標に重なるはずの別々のポリゴンの計算でも、ずれる可能性がある
これってライブラリ使うだけで解決できそう?
それともライブラリ+αで自分で何か実装しないといけないの?
Z軸を軸とした45度の回転を正負どちらの方向に加えても、きっちりX軸やY軸にのってくれなくて、
頂点が同じ座標に重なるはずの別々のポリゴンの計算でも、ずれる可能性がある
これってライブラリ使うだけで解決できそう?
それともライブラリ+αで自分で何か実装しないといけないの?
616デフォルトの名無しさん
2017/11/02(木) 07:10:11.88ID:nD35tXd7617デフォルトの名無しさん
2017/11/02(木) 07:34:22.72ID:0ATVgqBG >>615
浮動小数点計算の同値判定は差の絶対値が微小値未満かどうかでやれ、というのが
よく言われることかな
もちろん計算誤差の蓄積の問題もあるけどこれ以上は計算機科学でも勉強しないと
いけないかもしれない
というか浮動小数点の話はスレ違いかと
浮動小数点計算の同値判定は差の絶対値が微小値未満かどうかでやれ、というのが
よく言われることかな
もちろん計算誤差の蓄積の問題もあるけどこれ以上は計算機科学でも勉強しないと
いけないかもしれない
というか浮動小数点の話はスレ違いかと
618デフォルトの名無しさん
2017/11/02(木) 07:50:56.95ID:vQ98pS2c Ruby遅い
↓
速いと言われるPythonやLuaに手を出す
↓
言われるほど速くならない
↓
Ruby(+ネイティブコードの拡張ライブラリ)に戻ってくる ←イマココ
↓
速いと言われるPythonやLuaに手を出す
↓
言われるほど速くならない
↓
Ruby(+ネイティブコードの拡張ライブラリ)に戻ってくる ←イマココ
619デフォルトの名無しさん
2017/11/02(木) 09:47:21.54ID:XIufFp9a なんでPython?
いまならGoだろ
いまならGoだろ
620デフォルトの名無しさん
2017/11/02(木) 10:19:56.68ID:iVcltcyL >>616
だからそれじゃ意味ないでしょ
結局それはsinの引数xが等しいかを比較してるのと殆ど同じなんだよ
x' = x + ε (|ε| << |x|) の時、その方法では正しく比較できないことは自明だし
更にsin(π/3) と sin(2π/3) などの比較も同様
だからそれじゃ意味ないでしょ
結局それはsinの引数xが等しいかを比較してるのと殆ど同じなんだよ
x' = x + ε (|ε| << |x|) の時、その方法では正しく比較できないことは自明だし
更にsin(π/3) と sin(2π/3) などの比較も同様
621デフォルトの名無しさん
2017/11/02(木) 19:25:21.94ID:vQ98pS2c 唐突にコンパイラ言語が出てくるのはなぜなのか
622デフォルトの名無しさん
2017/11/02(木) 20:37:04.48ID:rd1E1A0+ まあ速度でRubyからPythonに変えようとするのは無知としか言いようがない
623デフォルトの名無しさん
2017/11/03(金) 01:16:26.72ID:zxns9zZh >>602
rational使え。
rational使え。
624デフォルトの名無しさん
2017/11/03(金) 01:22:01.48ID:GsNSAeOV >>速いと言われるPythonやLuaに手を出す
↓
なんでPython?
いまならGoだろ
↓
>>唐突にコンパイラ言語が出てくるのはなぜなのか
速さを求めているのに、
逆にコンパイラ言語と突っ込むほうが なぜなのか? だわ
Pythonに手を出すほうもほうだけどな
↓
なんでPython?
いまならGoだろ
↓
>>唐突にコンパイラ言語が出てくるのはなぜなのか
速さを求めているのに、
逆にコンパイラ言語と突っ込むほうが なぜなのか? だわ
Pythonに手を出すほうもほうだけどな
625デフォルトの名無しさん
2017/11/03(金) 01:47:41.25ID:Xm/a3Zyv 浮動小数の話は、他のスレで聞くか、検索して
誤差があるから、同値比較はできないので、
自分で誤差を決めて、範囲内かどうかをチェックする
値 - 誤差 < 値 < 値 + 誤差
誤差があるから、同値比較はできないので、
自分で誤差を決めて、範囲内かどうかをチェックする
値 - 誤差 < 値 < 値 + 誤差
626デフォルトの名無しさん
2017/11/03(金) 06:47:30.50ID:q7n+YR5K それはもう工夫とかじゃなくて、
プログラムを作る時の当たり前の話だな
どんな言語でもそう
いるんだよ
ループ変数に平気で実数使うのが
プログラムを作る時の当たり前の話だな
どんな言語でもそう
いるんだよ
ループ変数に平気で実数使うのが
627デフォルトの名無しさん
2017/11/03(金) 06:57:52.19ID:Xm/a3Zyv 浮動小数点は、情報処理試験の基本。
プログラミング以前の問題
float に、ずっと、1を足していくと、どうなるでしょう? とか
プログラミング以前の問題
float に、ずっと、1を足していくと、どうなるでしょう? とか
628デフォルトの名無しさん
2017/11/03(金) 08:32:22.48ID:+RrAZtoT Rubyにおいての浮動小数点のライブラリの話とかはこのスレの範疇だからどんどん質問していいぞ
スレ違いとか言ってるのは、ただのスレ進行の妨害したい奴だから無視していい
以前もこのスレには自演で荒らそうとする奴が出没してるんだ
スレ違いとか言ってるのは、ただのスレ進行の妨害したい奴だから無視していい
以前もこのスレには自演で荒らそうとする奴が出没してるんだ
629デフォルトの名無しさん
2017/11/03(金) 10:51:06.92ID:11xKh3l5 Rubyに関する話なんてほとんど出てないだろこのスレ
どこに目をつけてるんだ
どこに目をつけてるんだ
630デフォルトの名無しさん
2017/11/03(金) 11:09:16.39ID:BJmK7MtV 落ち目だから目移りするのは仕方ない
いくらRubyが好きでも、今の状況でRubyしか見てないとしたらむしろエンジニアとしての資質に欠ける
いくらRubyが好きでも、今の状況でRubyしか見てないとしたらむしろエンジニアとしての資質に欠ける
631デフォルトの名無しさん
2017/11/03(金) 12:30:06.18ID:yrerCLlf まだいるのかコイツ
自演してる暇あったらくたばれ屑
自演してる暇あったらくたばれ屑
632デフォルトの名無しさん
2017/11/03(金) 19:33:46.87ID:GjY9johE633デフォルトの名無しさん
2017/11/03(金) 19:55:07.78ID:9CXEo34m JavaScriptの方がよっぽど嫌なんだが
罠みたいな奇妙な仕様が多いし
罠みたいな奇妙な仕様が多いし
634デフォルトの名無しさん
2017/11/03(金) 20:06:52.11ID:r8BoLq9w635デフォルトの名無しさん
2017/11/03(金) 20:08:31.78ID:9CXEo34m636デフォルトの名無しさん
2017/11/03(金) 20:14:54.76ID:r8BoLq9w Rubyは0が真という罠がある
637デフォルトの名無しさん
2017/11/03(金) 20:15:29.96ID:r8BoLq9w638デフォルトの名無しさん
2017/11/03(金) 20:26:11.63ID:CfVklZAP639デフォルトの名無しさん
2017/11/03(金) 20:35:25.56ID:9CXEo34m 求める答えが0の場合ってけっこうあるし
1,0を真偽に使う言語仕様だと
数値化されてグダグダになることがよくあるから
0とfalse,nilを分けるRubyの方がスッキリしてて良い
1,0を真偽に使う言語仕様だと
数値化されてグダグダになることがよくあるから
0とfalse,nilを分けるRubyの方がスッキリしてて良い
640デフォルトの名無しさん
2017/11/03(金) 20:41:44.90ID:r8BoLq9w 言い訳www
641デフォルトの名無しさん
2017/11/03(金) 20:53:45.43ID:hlowM2W8 >>637
随分古い資料だね
随分古い資料だね
642デフォルトの名無しさん
2017/11/03(金) 20:56:32.85ID:JBf6zZHQ javascriptはTypeScriptに救われたが、rubyは誰が救ってくれるのか
643デフォルトの名無しさん
2017/11/03(金) 21:20:51.03ID:q7n+YR5K 数字の0とか文字列の""は、大抵はfalseになってくれた方がシンプルに書ける
でも、たまーに落とし穴にはまる
perl だと "0" という名前のファイルだけ処理できなかったりしてた
そういう痛い経験があるから、敢えてなんだろうな
でも、たまーに落とし穴にはまる
perl だと "0" という名前のファイルだけ処理できなかったりしてた
そういう痛い経験があるから、敢えてなんだろうな
644デフォルトの名無しさん
2017/11/04(土) 00:39:28.17ID:FdHKGPou JavaScript では、偽が何種類もあるから、
!!変数
みたいに変数を否定して、ブール値に直してから、
さらに否定するなど、大変
!!変数
みたいに変数を否定して、ブール値に直してから、
さらに否定するなど、大変
645デフォルトの名無しさん
2017/11/04(土) 00:42:39.26ID:hKqH3C3y 0という1文字だけが書かれたファイルはPerlが誤作動するというのは大昔からの定番ネタだからな
646デフォルトの名無しさん
2017/11/04(土) 02:36:36.21ID:57ycABKa TypeScriptの何がいいのかさっぱりわからん
CoffeeScriptと何が違うのか?
CoffeeScriptと何が違うのか?
647デフォルトの名無しさん
2017/11/04(土) 02:42:32.09ID:die+TITB 型
648デフォルトの名無しさん
2017/11/04(土) 04:04:59.69ID:mUpZK5PE 開発力
CoffeeScriptは所詮個人のプロジェクト
一人がやめたら頓挫するレベル
CoffeeScriptは所詮個人のプロジェクト
一人がやめたら頓挫するレベル
649デフォルトの名無しさん
2017/11/04(土) 06:31:30.70ID:juOwH5Ai Rails使いは宗教上の理由で絶対にTypeScriptに手を出せないのが悲しいよね
バックエンドよりフロントエンドのほうが厳格な言語で書かれてるとかさすがにキチガイ
バックエンドよりフロントエンドのほうが厳格な言語で書かれてるとかさすがにキチガイ
650デフォルトの名無しさん
2017/11/04(土) 09:11:23.50ID:D9DL6WlM >>638,649
分かれてはいるけど、肝心のifではnilは偽と同じ扱いになる。
はじめから、boolしか受け付けない、であれば0が真とか悩む必要なかった。
一見よく考えられているようで、実は大失敗だったと。
分かれてはいるけど、肝心のifではnilは偽と同じ扱いになる。
はじめから、boolしか受け付けない、であれば0が真とか悩む必要なかった。
一見よく考えられているようで、実は大失敗だったと。
651デフォルトの名無しさん
2017/11/04(土) 09:22:28.68ID:v7stxdd6652デフォルトの名無しさん
2017/11/04(土) 09:48:16.91ID:xcEGHyeH >>646
コード補完やリファクタリング
騙されたと思ってVSCodeでTypeScript書いてみたらいい
なぜ手間をかけてでも型を書くのか理解できる
型書きたくないでござるを否定するわけじゃないが、
ちゃんと両方の短所長所を理解した上でどちらが優れているか自分の頭で判断することが大切
それを放棄して一方の信者の言うことを鵜呑みにするのはそれこそ宗教だ
コード補完やリファクタリング
騙されたと思ってVSCodeでTypeScript書いてみたらいい
なぜ手間をかけてでも型を書くのか理解できる
型書きたくないでござるを否定するわけじゃないが、
ちゃんと両方の短所長所を理解した上でどちらが優れているか自分の頭で判断することが大切
それを放棄して一方の信者の言うことを鵜呑みにするのはそれこそ宗教だ
653デフォルトの名無しさん
2017/11/04(土) 11:32:17.49ID:llWWFdXR 「とにかく楽をして速く書きたい」
というのと、
「売り物なんだから万に一つの間違いも無いようにガチガチに作りたい」
という、二つの相反するパラダイムがあって、
それを同じ言語に負わせるのは無理がある
awkとかperlとかrubyとかは前者を志向してるので、
それに逆らった使い方をして使いにくいとごねられても困る
というのと、
「売り物なんだから万に一つの間違いも無いようにガチガチに作りたい」
という、二つの相反するパラダイムがあって、
それを同じ言語に負わせるのは無理がある
awkとかperlとかrubyとかは前者を志向してるので、
それに逆らった使い方をして使いにくいとごねられても困る
654デフォルトの名無しさん
2017/11/04(土) 11:57:41.85ID:/qI+U4k3 >>653
前者は「好きなエディタで」または「書捨ての単純なものを」が抜けてる
メンバ補完がバリバリ効く環境ならAPIリファレンスを見る時間が節約できて、ある程度まとまった規模なら型を書く手間は余裕でペイする
Matzクラスになると慣れたEmacs以外のエディタを使うコストが大きいからまた違うんだろうけど
前者は「好きなエディタで」または「書捨ての単純なものを」が抜けてる
メンバ補完がバリバリ効く環境ならAPIリファレンスを見る時間が節約できて、ある程度まとまった規模なら型を書く手間は余裕でペイする
Matzクラスになると慣れたEmacs以外のエディタを使うコストが大きいからまた違うんだろうけど
655デフォルトの名無しさん
2017/11/04(土) 12:05:39.20ID:NciV8/1n 型推論でvarで済むようになると、型を書く煩わしさがほとんど無くなって
さらに一般的に使われるエディタがIDE化した現在では
型があるメリットのほうが遥かに大きい
しかし動的言語に直接型を導入するのは無理があるので
TypeScriptみたいなのが最良の方式になるわけだが、
あんな完成度の高いものを作るのはもっと無理な話だろうな
さらに一般的に使われるエディタがIDE化した現在では
型があるメリットのほうが遥かに大きい
しかし動的言語に直接型を導入するのは無理があるので
TypeScriptみたいなのが最良の方式になるわけだが、
あんな完成度の高いものを作るのはもっと無理な話だろうな
656デフォルトの名無しさん
2017/11/04(土) 12:06:26.13ID:mUpZK5PE >>653
そんなに速く書きたいのかな?
それよりも速く読めるほうが重要じゃね?
型を書くのは面倒だけど、読む方は型が書いてあるから
コードの理解が速くなる。
書くのはタイピング速度を上げればいいだけの話だし
そんなに速く書きたいのかな?
それよりも速く読めるほうが重要じゃね?
型を書くのは面倒だけど、読む方は型が書いてあるから
コードの理解が速くなる。
書くのはタイピング速度を上げればいいだけの話だし
657デフォルトの名無しさん
2017/11/04(土) 12:23:37.40ID:gvMVqdNY バックエンドで安全性最優先ならコンパイラ言語だがRustじゃね。まだ発展途上だが
658デフォルトの名無しさん
2017/11/04(土) 13:33:25.21ID:afxny8Pa このスレ見てたらruby嫌いになるわ
割とマジで
割とマジで
659デフォルトの名無しさん
2017/11/04(土) 13:58:55.15ID:xcEGHyeH 斜陽なのは事実だから仕方ないね
全盛期に粗製乱造されたRailsアプリが負債化して、品質も大事だという方へ揺り戻しが来てるのが今
全盛期に粗製乱造されたRailsアプリが負債化して、品質も大事だという方へ揺り戻しが来てるのが今
660デフォルトの名無しさん
2017/11/04(土) 14:32:18.79ID:afxny8Pa リプレイス案件で次は別の言語使いましょうですね判ります
661デフォルトの名無しさん
2017/11/04(土) 14:46:58.00ID:57ycABKa 早くシンプルに作る時代から
安定して長期的な傾向になったんだから
時代に合わなくなってきているのは分かる。
でもスタートアップとかにならまだまだ現役
安定して長期的な傾向になったんだから
時代に合わなくなってきているのは分かる。
でもスタートアップとかにならまだまだ現役
662デフォルトの名無しさん
2017/11/04(土) 14:49:21.40ID:gvMVqdNY 日本って本来の意味のシステムエンジニアリングは壊滅的にダメだからなぁ
品質を管理できる体制作りとか絶望的に期待できない。ガバガバ管理でゴミが
乱造されても現場に押しつけて終わりだし
品質を管理できる体制作りとか絶望的に期待できない。ガバガバ管理でゴミが
乱造されても現場に押しつけて終わりだし
663デフォルトの名無しさん
2017/11/04(土) 15:08:41.19ID:mUpZK5PE RubyやRailsや最先端だと誤解されていた時期もあったけど
実は全てJavaが十数年前に通った道・・・のすぐとなりの
けもの道を歩いているに過ぎない
実は全てJavaが十数年前に通った道・・・のすぐとなりの
けもの道を歩いているに過ぎない
664デフォルトの名無しさん
2017/11/04(土) 15:25:41.52ID:llWWFdXR JavaもRubyも出来たのは同じ頃
665デフォルトの名無しさん
2017/11/04(土) 15:41:04.71ID:mUpZK5PE666デフォルトの名無しさん
2017/11/04(土) 16:18:08.99ID:zO59KQfY Javaが「先」だと?w
667デフォルトの名無しさん
2017/11/04(土) 16:21:05.85ID:e6S1BAQ6 小型船の製造を得意としていたルビー造船所だったが、
大型船の製造を頼まれてこなし、持て囃されてしまったのがケチの付き始め。
挙句の果に「ルビー造船所は豪華客船を作るのに向いてない!」
と言いだすお馬鹿さんまで出てきてしまった。
大型船の製造を頼まれてこなし、持て囃されてしまったのがケチの付き始め。
挙句の果に「ルビー造船所は豪華客船を作るのに向いてない!」
と言いだすお馬鹿さんまで出てきてしまった。
668デフォルトの名無しさん
2017/11/04(土) 17:43:36.41ID:O0AU1SEY 船の大きさの問題じゃなくて作業員の質の問題
669デフォルトの名無しさん
2017/11/04(土) 18:13:54.51ID:xZyYrbxC Rubyのような動的型言語は手軽に気楽に素早く、
だが長期的にみればむしろコストがかさむかもしれない
↑っていうイメージがそもそも嘘っつーか
これは言語開発者が言語を作る場合においては確かに成り立つ
マトモな実用的な言語を作るのは大変なわけだが、それでも
動的型言語をを作るのは静的型言語を作るのに比べればかなり楽、最初は楽
ただし、発展していって、実行速度とかコード補完とか、本当の意味での使いやすさとか
そういう次元の話になってくると、むしろ難しいというか行き詰まる
だから、手軽に素早く作れるが、後で困るかも、というのは
Rubyの言語生命の話であって、そこからくるイメージは有るが
実際には俺らには関係が無い
利用者には単に手抜き言語であることのディメリットしかない
もしくは言語開発者自身がそういう思想に基づいて言語を作ったことから派生する
負の連鎖のようなものが起こっているかもしれないが
だが長期的にみればむしろコストがかさむかもしれない
↑っていうイメージがそもそも嘘っつーか
これは言語開発者が言語を作る場合においては確かに成り立つ
マトモな実用的な言語を作るのは大変なわけだが、それでも
動的型言語をを作るのは静的型言語を作るのに比べればかなり楽、最初は楽
ただし、発展していって、実行速度とかコード補完とか、本当の意味での使いやすさとか
そういう次元の話になってくると、むしろ難しいというか行き詰まる
だから、手軽に素早く作れるが、後で困るかも、というのは
Rubyの言語生命の話であって、そこからくるイメージは有るが
実際には俺らには関係が無い
利用者には単に手抜き言語であることのディメリットしかない
もしくは言語開発者自身がそういう思想に基づいて言語を作ったことから派生する
負の連鎖のようなものが起こっているかもしれないが
670デフォルトの名無しさん
2017/11/04(土) 18:33:51.52ID:v7stxdd6 >>669
むしろ、作った後困ってない言語って何よ?
むしろ、作った後困ってない言語って何よ?
671デフォルトの名無しさん
2017/11/04(土) 18:39:23.17ID:uQ9Lq+uS 未踏に参加して金が絡んできてからおかしくなった気がする
672デフォルトの名無しさん
2017/11/04(土) 19:15:21.01ID:die+TITB 「Rubyは言語の宝石箱や〜」(金銭的な意味で)
673デフォルトの名無しさん
2017/11/04(土) 19:59:05.55ID:xZyYrbxC 冷静になって考えてみると>>659の言い方もおかしいよな
揺り戻しっつっても、全盛期ですら静的型言語に勝ってたことは一度もないし、ニッチもニッチ
一部の人がはしゃいでただけだからなぁ、揺り戻しもなにもなー
殆どの人は支持も何もしてなかったし(むしろ冷ややかか?)
既定路線っつーかなんつーか、大人と子供みたいな感じかね
民主党みたいに一時期でも与党だったってわけでもないし
揺り戻しっていうのかね、これ
揺り戻しっつっても、全盛期ですら静的型言語に勝ってたことは一度もないし、ニッチもニッチ
一部の人がはしゃいでただけだからなぁ、揺り戻しもなにもなー
殆どの人は支持も何もしてなかったし(むしろ冷ややかか?)
既定路線っつーかなんつーか、大人と子供みたいな感じかね
民主党みたいに一時期でも与党だったってわけでもないし
揺り戻しっていうのかね、これ
674デフォルトの名無しさん
2017/11/04(土) 20:17:22.74ID:die+TITB Rubyがニッチっていうのは違和感がある
D言語とかもっとニッチなのがあるからね
言語ランキングの十位台位に常にいるんだから
そこそこメジャーって言ってもいいと思う
D言語とかもっとニッチなのがあるからね
言語ランキングの十位台位に常にいるんだから
そこそこメジャーって言ってもいいと思う
675デフォルトの名無しさん
2017/11/04(土) 20:17:36.86ID:iK5iZLmc コーディング仕様と言語仕様の区別が付いていない人がいるな
676デフォルトの名無しさん
2017/11/04(土) 20:49:10.69ID:KrLu9mes >>674
D言語は競プロには便利だぞ
C++よりは書きやすいし、競プロならライブラリが揃ってるかどうかは関係ないしな
それはともかく、Rubyは10位前後をずっと保ってるわけだからニッチではないわな
完全にメジャー言語だと思う
メジャー言語なんだからそりゃアンチもいるわ
たまたま粘着度の高いアンチがいるとこういう状態になるのも2chならよくある話
粘着度が高いのはキモいけどね、個人的には
D言語は競プロには便利だぞ
C++よりは書きやすいし、競プロならライブラリが揃ってるかどうかは関係ないしな
それはともかく、Rubyは10位前後をずっと保ってるわけだからニッチではないわな
完全にメジャー言語だと思う
メジャー言語なんだからそりゃアンチもいるわ
たまたま粘着度の高いアンチがいるとこういう状態になるのも2chならよくある話
粘着度が高いのはキモいけどね、個人的には
677デフォルトの名無しさん
2017/11/04(土) 21:13:30.27ID:e6S1BAQ6 rubyにアンチが多いっていうのはrails伝説に夢見て飛び込んで
勝手に挫折や絶望を味わった連中が暴れているからだろ。
rails絡みの要望をそのまま受け入れ続ければrubyは死ぬな。
勝手に挫折や絶望を味わった連中が暴れているからだろ。
rails絡みの要望をそのまま受け入れ続ければrubyは死ぬな。
678デフォルトの名無しさん
2017/11/04(土) 21:51:45.01ID:3Qk/5QRn 何を今更
今のRubyのコミットはほとんどRails絡みでしょ
とっくにRails専用スクリプトになってるんだよ
今のRubyのコミットはほとんどRails絡みでしょ
とっくにRails専用スクリプトになってるんだよ
679デフォルトの名無しさん
2017/11/04(土) 22:00:15.04ID:llWWFdXR もともとperlの進化系として便利に使ってただけの人にとっては、
いろいろ環境が充実して有り難い限りだ
いろいろ環境が充実して有り難い限りだ
680デフォルトの名無しさん
2017/11/04(土) 22:38:20.83ID:t9DikZno 世界の中でプログラマーは1%も居ない。
更にその中で複数の計算モデルの違う言語を使いこなして、本当の意味の比較が出来る者など極一部。
つまり、殆どの者は自分の好き嫌い・得手不得手を言語の良し悪しに摩り替えて喋ってる。
そういう俺も、Javaは許せん!w
更にその中で複数の計算モデルの違う言語を使いこなして、本当の意味の比較が出来る者など極一部。
つまり、殆どの者は自分の好き嫌い・得手不得手を言語の良し悪しに摩り替えて喋ってる。
そういう俺も、Javaは許せん!w
681デフォルトの名無しさん
2017/11/04(土) 23:08:22.96ID:kIiPx95D 珍しくスレ数が伸びているからと覗いてみたけど、
エンジニア視点によるRuby固有の問題点は何一つ話題になっていないのね
エンジニア視点によるRuby固有の問題点は何一つ話題になっていないのね
682デフォルトの名無しさん
2017/11/04(土) 23:44:23.98ID:xZyYrbxC 何か問題があったとして
それがRubyだけの固有の問題かどうかは、割とどうでもよい
ざっくりというと、動的型言語はどれも同じような問題にぶち当たってる
元々は多少マシンのリソースを食ってもプログラマが楽できた方が良い
とかいうユルフワな考えもあったんだろうけど
実際にはプログラマは楽できないし、マシンに負荷がかかるだけだった
動的型で楽できたのは言語を開発する側だけ
(それも自分たちは静的型言語で静的型の恩恵を受けながら言語を開発してるという)
しかも、パフォーマンスとかコード補完とかマトモなことをやり始めると
むしろ静的型より難易度が上がるという
結局、言語開発者にも利用者にも機械にも、おおよそ誰にも優しくないのが動的型で
非常に筋の悪い、行き詰まった方式と言える
また、文法の面からみても、変数宣言が無いから変数スコープがぐちゃぐちゃになるし
( もし変数スコープを明確にするために変数宣言を導入するんなら
(オプションかどうかは置いておいて)型がかけても良いんじゃね?という発想に至る←通常は )
元々変数宣言が無い言語に後からオプションで型宣言を入れるなら
これは本当にダサくて、それをやっても、後付け故に変数スコープはグチャグチャのままで
だったら初めから変数宣言導入しとけって感じ
それがRubyだけの固有の問題かどうかは、割とどうでもよい
ざっくりというと、動的型言語はどれも同じような問題にぶち当たってる
元々は多少マシンのリソースを食ってもプログラマが楽できた方が良い
とかいうユルフワな考えもあったんだろうけど
実際にはプログラマは楽できないし、マシンに負荷がかかるだけだった
動的型で楽できたのは言語を開発する側だけ
(それも自分たちは静的型言語で静的型の恩恵を受けながら言語を開発してるという)
しかも、パフォーマンスとかコード補完とかマトモなことをやり始めると
むしろ静的型より難易度が上がるという
結局、言語開発者にも利用者にも機械にも、おおよそ誰にも優しくないのが動的型で
非常に筋の悪い、行き詰まった方式と言える
また、文法の面からみても、変数宣言が無いから変数スコープがぐちゃぐちゃになるし
( もし変数スコープを明確にするために変数宣言を導入するんなら
(オプションかどうかは置いておいて)型がかけても良いんじゃね?という発想に至る←通常は )
元々変数宣言が無い言語に後からオプションで型宣言を入れるなら
これは本当にダサくて、それをやっても、後付け故に変数スコープはグチャグチャのままで
だったら初めから変数宣言導入しとけって感じ
683デフォルトの名無しさん
2017/11/04(土) 23:45:08.70ID:KrLu9mes 多分だけど、ここに書いてる粘着君はただ叩きたいだけだね
静的型と動的型を理由にしてるのも、そこが叩いてる人にとって分かりやすいからというだけだもんね
その証拠としてはPythonの話が一切出てこないところだね
静的型と動的型を理由にしてるのも、そこが叩いてる人にとって分かりやすいからというだけだもんね
その証拠としてはPythonの話が一切出てこないところだね
684デフォルトの名無しさん
2017/11/04(土) 23:50:03.51ID:KrLu9mes 動的型のくくりとしてPythonはもはや避けられないレベルで普及してる言語なんだけど
なぜかRubyを叩く人はPythonの話を一切しない
これはPythonはRubyよりは勢いがある言語なので下手に叩くとしっぺ返しを食らうからだろうね
その点、Rubyは勢いはそこまででもないので叩いてもそういうことがないと思ってるんだろうね
つまり、叩きやすいから叩いてるだけで、そのメンタルは煽り荒らしと何ら変わらないんだろうね
なぜかRubyを叩く人はPythonの話を一切しない
これはPythonはRubyよりは勢いがある言語なので下手に叩くとしっぺ返しを食らうからだろうね
その点、Rubyは勢いはそこまででもないので叩いてもそういうことがないと思ってるんだろうね
つまり、叩きやすいから叩いてるだけで、そのメンタルは煽り荒らしと何ら変わらないんだろうね
685デフォルトの名無しさん
2017/11/04(土) 23:55:42.56ID:e6S1BAQ6686デフォルトの名無しさん
2017/11/04(土) 23:58:12.35ID:xZyYrbxC ダックタイピングは便利な面もあるだろうが
静的型でも静的なダックタイピングなら出来るし
コンパイル時にチェックが入るから安心
大体は静的なダックタイピングでなんとかなるし
動的なことがしたければインターフェースを介したほうが
分かりやすいし、安全
静的型でも静的なダックタイピングなら出来るし
コンパイル時にチェックが入るから安心
大体は静的なダックタイピングでなんとかなるし
動的なことがしたければインターフェースを介したほうが
分かりやすいし、安全
687デフォルトの名無しさん
2017/11/04(土) 23:59:59.88ID:KrLu9mes それをPythonスレに書き込んでるなら説得力もあるんだが、それをやってない時点でお察しだよな
動的型を敵視するなら今ならまずPythonスレに書くべき内容な訳なんだから
動的型を敵視するなら今ならまずPythonスレに書くべき内容な訳なんだから
688デフォルトの名無しさん
2017/11/05(日) 00:01:30.20ID:fgQ02ied689デフォルトの名無しさん
2017/11/05(日) 00:19:02.91ID:4Bj/mfgI 動的型といってもPythonは型アノテーションを入れたし
過去の過ちを反省して修正していく方針だからね
そーゆーのまで叩いたりはしないよ、まぁ頑張れって感じ
一方Rubyは未だにこんなこと言ってるからね
> https://togetter.com/li/1021897
> 型は絶対書きたくない" "Ruby3は東京オリンピックまでに
> Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」
まぁこんな感じなんで、かなり差があるよね
他の動的型言語も基本的に静的型は入れたいんだけど
後から入れるのは難しく、技術的に苦労しているという感じ
「型は絶対書きたくない」とかワケワカラン事 言ってるのはRubyぐらいだろうな
過去の過ちを反省して修正していく方針だからね
そーゆーのまで叩いたりはしないよ、まぁ頑張れって感じ
一方Rubyは未だにこんなこと言ってるからね
> https://togetter.com/li/1021897
> 型は絶対書きたくない" "Ruby3は東京オリンピックまでに
> Rubyの父Matzによる、「楽しいプログラミング体験を届けるために」
まぁこんな感じなんで、かなり差があるよね
他の動的型言語も基本的に静的型は入れたいんだけど
後から入れるのは難しく、技術的に苦労しているという感じ
「型は絶対書きたくない」とかワケワカラン事 言ってるのはRubyぐらいだろうな
690デフォルトの名無しさん
2017/11/05(日) 00:24:00.03ID:gkdND+eq >>689
「過ち」とか言うならそれをPythonスレに書きこんでみたらいいよ
話はそれからだよね
Rubyスレにだけ書いてる時点でただのRubyアンチであって、動的型アンチであるなら
他の動的型スレに書いてないと説得力皆無だよ
「過ち」とか言うならそれをPythonスレに書きこんでみたらいいよ
話はそれからだよね
Rubyスレにだけ書いてる時点でただのRubyアンチであって、動的型アンチであるなら
他の動的型スレに書いてないと説得力皆無だよ
691デフォルトの名無しさん
2017/11/05(日) 00:54:51.15ID:4Bj/mfgI ある程度話の流れで付き合ったけど、基本的にPythonは関係ないからな
さっきから事あるごとにPython、Python言ってるのはお前であって俺ではない
むしろ俺がPythonについて何も言わないから
Pythonについての言及が無いのはおかしいと言い出したのはお前
それで、ほんの少しだけPythonの事も言ったら
(それもPythonについては何も思ってないという内容)
「それをPythonのスレで言え」はおかしい
だからPythonについては何も思ってないといっただろ、話聞いてないな
さっきから事あるごとにPython、Python言ってるのはお前であって俺ではない
むしろ俺がPythonについて何も言わないから
Pythonについての言及が無いのはおかしいと言い出したのはお前
それで、ほんの少しだけPythonの事も言ったら
(それもPythonについては何も思ってないという内容)
「それをPythonのスレで言え」はおかしい
だからPythonについては何も思ってないといっただろ、話聞いてないな
692デフォルトの名無しさん
2017/11/05(日) 00:58:49.82ID:gkdND+eq >>691
動的型の話をしてるのにPyhonについて完全無視
これは明らかにおかしいよね
アンチ動的型ならPythonについて語らないのは現在においては嘘だし
他にも古くはLispなど動的型言語は数多くあるのだから、そこらの言語スレに書いて
ないならアンチ動的型じゃないよね、と
動的型の話をしてるのにPyhonについて完全無視
これは明らかにおかしいよね
アンチ動的型ならPythonについて語らないのは現在においては嘘だし
他にも古くはLispなど動的型言語は数多くあるのだから、そこらの言語スレに書いて
ないならアンチ動的型じゃないよね、と
693デフォルトの名無しさん
2017/11/05(日) 01:03:01.83ID:Gz3QD+PD694デフォルトの名無しさん
2017/11/05(日) 01:03:57.81ID:g65KNgLI 今のところmatzのアイデアは希望が持てないし、この件に関して議論が無さすぎて
rubyコミュニティーが停滞してるように感じる
rubyコミュニティーが停滞してるように感じる
695デフォルトの名無しさん
2017/11/05(日) 01:05:46.72ID:g65KNgLI >>692
だからpythonは型も書ける方向に進んでるでしょ
だからpythonは型も書ける方向に進んでるでしょ
696デフォルトの名無しさん
2017/11/05(日) 01:07:58.86ID:gkdND+eq697デフォルトの名無しさん
2017/11/05(日) 01:27:54.84ID:P7Kt20uM 型を無くすことが目的になっちゃダメだよね。
コンピュータにとっては型が無くても良いかもしれないが
人間にとっては型があったほうが理解しやすい。
型は人間にとって必要なもの
書くのが面倒っていうのなら、必要な所と必要ない所にわければいいじゃん
そもそも型は何かというと外部とのインターフェースだよ。
外部というのはクラスであれば、クラスの外から呼び出す時
つまりはprivateメソッドやローカル変数には型はいらない
逆にpublicメソッドには型は必要
あとメソッド名だけで区別するのはいい加減やめよう
Aというインターフェースのnameと、
Bというインターフェースのnameは意味が違う
インターフェースを複数実装するなら、
def A_name や def B_name という名前で定義できるようにするべき
外部から呼び出すときは、B_name()ってやらないといけないのか?と
思うかもしれないがそれは違う。例えばこんな感じだ
obj = Klass.new
obj.name ← これはKlassのnameメソッドが呼び出される
a = cast<A>obj
a.name ← これはKlassのAインターフェースのnameメソッドが呼び出される
b = cast<B>obj
b.name ← これはKlassのBインターフェースのnameメソッドが呼び出される
このように複数のインターフェースを持たせても適切なメソッドを呼び出せるようにできる
コンピュータにとっては型が無くても良いかもしれないが
人間にとっては型があったほうが理解しやすい。
型は人間にとって必要なもの
書くのが面倒っていうのなら、必要な所と必要ない所にわければいいじゃん
そもそも型は何かというと外部とのインターフェースだよ。
外部というのはクラスであれば、クラスの外から呼び出す時
つまりはprivateメソッドやローカル変数には型はいらない
逆にpublicメソッドには型は必要
あとメソッド名だけで区別するのはいい加減やめよう
Aというインターフェースのnameと、
Bというインターフェースのnameは意味が違う
インターフェースを複数実装するなら、
def A_name や def B_name という名前で定義できるようにするべき
外部から呼び出すときは、B_name()ってやらないといけないのか?と
思うかもしれないがそれは違う。例えばこんな感じだ
obj = Klass.new
obj.name ← これはKlassのnameメソッドが呼び出される
a = cast<A>obj
a.name ← これはKlassのAインターフェースのnameメソッドが呼び出される
b = cast<B>obj
b.name ← これはKlassのBインターフェースのnameメソッドが呼び出される
このように複数のインターフェースを持たせても適切なメソッドを呼び出せるようにできる
698デフォルトの名無しさん
2017/11/05(日) 01:29:39.27ID:g65KNgLI >>696
別人に絡むなよ
別人に絡むなよ
699デフォルトの名無しさん
2017/11/05(日) 01:29:55.90ID:gkdND+eq >>697
他の動的型スレで同じ主張をしているなら説得力があるけど、ここだけで書いても何も説得力ないよ
他の動的型スレで同じ主張をしているなら説得力があるけど、ここだけで書いても何も説得力ないよ
700デフォルトの名無しさん
2017/11/05(日) 01:41:47.44ID:Gz3QD+PD701デフォルトの名無しさん
2017/11/05(日) 01:59:30.31ID:P7Kt20uM >>700
はい。だから作ってますよ?
将来、言語の標準機能としてlint相当のものが内蔵され
現在ドキュメントとして書いている設計書を
プログラム言語として記述できる言語ができたとしたら
その開発者は俺だと思っていいよ。
はい。だから作ってますよ?
将来、言語の標準機能としてlint相当のものが内蔵され
現在ドキュメントとして書いている設計書を
プログラム言語として記述できる言語ができたとしたら
その開発者は俺だと思っていいよ。
702デフォルトの名無しさん
2017/11/05(日) 02:17:25.35ID:Gz3QD+PD >>701
笑いを取ろうとしたのか?
笑いを取ろうとしたのか?
703デフォルトの名無しさん
2017/11/05(日) 02:21:35.80ID:P7Kt20uM704デフォルトの名無しさん
2017/11/05(日) 02:25:17.49ID:Gz3QD+PD >>703
うん、分かったからrubyスレに書き込むなよ
うん、分かったからrubyスレに書き込むなよ
705デフォルトの名無しさん
2017/11/05(日) 02:28:39.27ID:P7Kt20uM 言語作ってみろと言われたから
作ってると言っただけなのに
この反応w コンプレックスかな?
作ってると言っただけなのに
この反応w コンプレックスかな?
706デフォルトの名無しさん
2017/11/05(日) 02:33:38.73ID:gkdND+eq >>701
githubのページ教えて
githubのページ教えて
707デフォルトの名無しさん
2017/11/05(日) 02:59:23.84ID:P7Kt20uM708デフォルトの名無しさん
2017/11/05(日) 03:06:23.11ID:gkdND+eq709デフォルトの名無しさん
2017/11/05(日) 03:07:41.09ID:P7Kt20uM710デフォルトの名無しさん
2017/11/05(日) 03:11:06.77ID:gkdND+eq711デフォルトの名無しさん
2017/11/05(日) 03:16:26.19ID:mZtOvkfq 勘違いしてそうだけど
言語作ってるから偉いとかじゃないぞ
どうせ確実にRubyより使われないだろうし
言語作ってるから偉いとかじゃないぞ
どうせ確実にRubyより使われないだろうし
712デフォルトの名無しさん
2017/11/05(日) 03:19:38.51ID:P7Kt20uM713デフォルトの名無しさん
2017/11/05(日) 03:21:31.80ID:gkdND+eq714デフォルトの名無しさん
2017/11/05(日) 03:41:15.40ID:mZtOvkfq 言語を作って公開したら次に言うのは
「このオレの素晴らしい言語が流行らないのは
どう考えてもRubyにしがみついてるお前らが悪い!」
「このオレの素晴らしい言語が流行らないのは
どう考えてもRubyにしがみついてるお前らが悪い!」
715デフォルトの名無しさん
2017/11/05(日) 03:43:14.48ID:P7Kt20uM716デフォルトの名無しさん
2017/11/05(日) 03:46:46.05ID:P7Kt20uM >>714
すべての言語を作っている人にそれ言ってあげると良いよ
すべての言語を作っている人にそれ言ってあげると良いよ
717デフォルトの名無しさん
2017/11/05(日) 03:52:40.81ID:gkdND+eq718デフォルトの名無しさん
2017/11/05(日) 04:01:09.32ID:P7Kt20uM 煽っても無駄w
719デフォルトの名無しさん
2017/11/05(日) 04:07:11.43ID:g65KNgLI アホみたいに絡んでくるやつめんどくせえな
720デフォルトの名無しさん
2017/11/05(日) 05:45:23.75ID:eKLBOKdE 昔は別スレ立ててゴミクズ連中を隔離するだけの分別があったのにな
今のRubyコミュニティはすっかり腐り果ててしまった
今のRubyコミュニティはすっかり腐り果ててしまった
721デフォルトの名無しさん
2017/11/05(日) 05:46:52.55ID:sql+xI5H >>720
5chで世界を知った気になり始めたら、色んな意味でヤバイぞw
5chで世界を知った気になり始めたら、色んな意味でヤバイぞw
722デフォルトの名無しさん
2017/11/05(日) 09:49:28.54ID:sB6tkFho matrixライブラリのベクトルクラスってなんで昔は外積ついてなかったの?
俺が知らないだけで右手座標系か左手座標系かってそれほど問題になるの?
俺が知らないだけで右手座標系か左手座標系かってそれほど問題になるの?
723デフォルトの名無しさん
2017/11/05(日) 10:11:29.75ID:iAaHdauh >>722
高次元の場合の定義が曖昧だから
高次元の場合の定義が曖昧だから
724デフォルトの名無しさん
2017/11/05(日) 12:51:14.45ID:4Bj/mfgI725デフォルトの名無しさん
2017/11/05(日) 13:11:52.14ID:gkdND+eq726デフォルトの名無しさん
2017/11/05(日) 13:19:57.68ID:P7Kt20uM プログラム言語の話をしてるのにCOBOLの話がないのは明らかにおかしい
727デフォルトの名無しさん
2017/11/05(日) 13:22:20.98ID:4Bj/mfgI だからpythonは過去の過ちを認めて静的型の機能を取り入れていく方向で
今まさに努力している最中なんだから、もういいだろ?生暖かく見守れよ
なんで更生しようとしているやつまで叩く必要があるんだよ、それはいじめだろ、鬼畜
最初からやっとけよ、とは思うが、済んだことだからもういいんだよ
今まさに努力している最中なんだから、もういいだろ?生暖かく見守れよ
なんで更生しようとしているやつまで叩く必要があるんだよ、それはいじめだろ、鬼畜
最初からやっとけよ、とは思うが、済んだことだからもういいんだよ
728デフォルトの名無しさん
2017/11/05(日) 13:25:33.32ID:P7Kt20uM でさ、Pythonの話なんだけど、あの言語標準で
なんでもかんでも用意するっていうのは素晴らしいと思うわけ
なんでもかんでも用意するっていうのは素晴らしいと思うわけ
729デフォルトの名無しさん
2017/11/05(日) 13:31:15.46ID:gkdND+eq730デフォルトの名無しさん
2017/11/05(日) 14:19:09.06ID:WRVCeBNz731デフォルトの名無しさん
2017/11/05(日) 16:46:03.37ID:dOXftlaT 荒らす意図でないならRuby議論スレ立てな。スレタイ読める?
732デフォルトの名無しさん
2017/11/05(日) 18:38:16.07ID:S5vmMqw3 おいこら
自演してスレ立てんなどあほ
Pythonスレいけやボケ
自演してスレ立てんなどあほ
Pythonスレいけやボケ
733デフォルトの名無しさん
2017/11/05(日) 20:12:15.28ID:sB6tkFho 荒らしってまだいるの?
734デフォルトの名無しさん
2017/11/05(日) 20:43:53.38ID:vWNY+clC >>733
初心者スレでしか議論ゴッコが出来ない奴も荒らしだろうな。
初心者スレでしか議論ゴッコが出来ない奴も荒らしだろうな。
735デフォルトの名無しさん
2017/11/05(日) 22:24:18.88ID:S5vmMqw3736デフォルトの名無しさん
2017/11/05(日) 22:44:38.97ID:sB6tkFho >>735
これだけ長々やってるならどんなにIDを変えようがリホモだって固まってくる筈だから、
サーバ管理者に言えば各リホモ教えて貰えたり、
永久ban等の対策してもらえるんじゃない?
サーバ管理者自身が荒らしてるのでなければだけど
これだけ長々やってるならどんなにIDを変えようがリホモだって固まってくる筈だから、
サーバ管理者に言えば各リホモ教えて貰えたり、
永久ban等の対策してもらえるんじゃない?
サーバ管理者自身が荒らしてるのでなければだけど
737デフォルトの名無しさん
2017/11/05(日) 23:25:03.80ID:Gz3QD+PD >>736
アッー!はお断りなんですけど
アッー!はお断りなんですけど
738デフォルトの名無しさん
2017/11/05(日) 23:33:25.37ID:S5vmMqw3739デフォルトの名無しさん
2017/11/06(月) 00:33:47.14ID:JFyWwn9i 注意してもしなくても続けるのが荒らしなんだから問答無用で良い
740デフォルトの名無しさん
2017/11/06(月) 01:18:05.29ID:+FH43uxL >>736
推測じゃなくて実際にやってみ
基本は削除依頼だ
http://qb5.5ch.net/saku/index2.html
http://qb5.5ch.net/test/read.cgi/saku/1352422796/l50
削除が追いつかないとみなされたときにのみ規制が考慮される
削除議論スレ
http://agree.5ch.net/test/read.cgi/sakud/1116892398/l50
サーバに負担をかけるとされるときは規制議論にスレが立てられる
http://agree.5ch.net/sec2chd/subback.html
もう一度だけ持論を述べさせてもらうなら、>>730で書いたとおり、
いまや見捨てるコストのほうが維持しようとするコストより圧倒的に安い
推測じゃなくて実際にやってみ
基本は削除依頼だ
http://qb5.5ch.net/saku/index2.html
http://qb5.5ch.net/test/read.cgi/saku/1352422796/l50
削除が追いつかないとみなされたときにのみ規制が考慮される
削除議論スレ
http://agree.5ch.net/test/read.cgi/sakud/1116892398/l50
サーバに負担をかけるとされるときは規制議論にスレが立てられる
http://agree.5ch.net/sec2chd/subback.html
もう一度だけ持論を述べさせてもらうなら、>>730で書いたとおり、
いまや見捨てるコストのほうが維持しようとするコストより圧倒的に安い
741デフォルトの名無しさん
2017/11/06(月) 09:25:16.33ID:xdkFQOua 荒らしが何か言ってるが無視無視
742デフォルトの名無しさん
2017/11/06(月) 12:22:13.30ID:2TAusKQx 荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
注意するとしたらこんな感じか?
これでも続けるのが荒らしだから、見分けやすくなるだろう
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
注意するとしたらこんな感じか?
これでも続けるのが荒らしだから、見分けやすくなるだろう
743デフォルトの名無しさん
2017/11/06(月) 13:07:39.87ID:wL8uE6G5 >>729
誰しも神ではないから本当の意味での過ちかは誰にもわからないし
そこの部分の定義ははっきり言ってどうでもよいが
ともかく過ちを訂正する振る舞いが行われた、という事実だけで十分
現象としての事実だけが重要だし、それ以上は求めてない
それに、「過ちだったか?」などという議論の段階では無くて
もう既に訂正されているし、意思が行動で示されてるし、終わったこと
>「過ち」だと言い切るならそれを披露してこいよ
何度も言ってるが、もう済んだ過去のことを無理に掘り起こして
つべこべ言う趣味はない
誰しも神ではないから本当の意味での過ちかは誰にもわからないし
そこの部分の定義ははっきり言ってどうでもよいが
ともかく過ちを訂正する振る舞いが行われた、という事実だけで十分
現象としての事実だけが重要だし、それ以上は求めてない
それに、「過ちだったか?」などという議論の段階では無くて
もう既に訂正されているし、意思が行動で示されてるし、終わったこと
>「過ち」だと言い切るならそれを披露してこいよ
何度も言ってるが、もう済んだ過去のことを無理に掘り起こして
つべこべ言う趣味はない
744デフォルトの名無しさん
2017/11/06(月) 14:08:37.90ID:xdkFQOua さっそく出やがったな
すれ違いじゃぼけ
すれ違いじゃぼけ
745デフォルトの名無しさん
2017/11/06(月) 14:24:36.94ID:2TAusKQx >荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
毎回コレをはっても、続けるようなら悪質だよ
後は粛々と関連する法令の元で弁護士に請求してもらって、法的に措置とるしかない
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
毎回コレをはっても、続けるようなら悪質だよ
後は粛々と関連する法令の元で弁護士に請求してもらって、法的に措置とるしかない
746デフォルトの名無しさん
2017/11/06(月) 14:58:55.26ID:Vd7vqFxu 荒らしがどうこう言ってる奴らのほうが圧倒的に鬱陶しい
747デフォルトの名無しさん
2017/11/06(月) 15:11:00.00ID:xdkFQOua 荒らしが火病っとる
748デフォルトの名無しさん
2017/11/06(月) 15:18:46.17ID:JFyWwn9i もう相当長く粘着されてるからこの辺りで荒らしとはケリをつけて良いと思う
いい加減にうざい
いい加減にうざい
749デフォルトの名無しさん
2017/11/06(月) 15:37:48.41ID:xdkFQOua >荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
荒らしはこれ張られるのが物凄く嫌いみたいだな
荒らしってばれちゃうから
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
荒らしはこれ張られるのが物凄く嫌いみたいだな
荒らしってばれちゃうから
750デフォルトの名無しさん
2017/11/06(月) 15:49:08.45ID:6JLIEeFJ >プログラマは楽できないし、マシンに負荷がかかるだけだった
嗤っちゃ遺憾がほんそれの通りだ
みんな裸の王様が好きなのかそれともそのことにすら気付いていないあほばっか
嗤っちゃ遺憾がほんそれの通りだ
みんな裸の王様が好きなのかそれともそのことにすら気付いていないあほばっか
751デフォルトの名無しさん
2017/11/06(月) 15:59:10.22ID:xdkFQOua また出やがった
752デフォルトの名無しさん
2017/11/06(月) 16:01:06.01ID:JjVH4ZAK 上に出てたテンプレ張ってとことん荒らしを炙り出してやればいい
誰も困らないし
つーか、荒らしの一人芝居がキモイ
誰も困らないし
つーか、荒らしの一人芝居がキモイ
753デフォルトの名無しさん
2017/11/06(月) 16:10:20.13ID:xdkFQOua 荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
とりあえず荒らしはこれを破りたがるから踏み絵にして、IPやリモホ請求するか
荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
とりあえず荒らしはこれを破りたがるから踏み絵にして、IPやリモホ請求するか
754デフォルトの名無しさん
2017/11/06(月) 16:12:38.62ID:Vd7vqFxu そもそも誰のことを荒らしと言ってるのかがわからないし、過剰反応してて気味が悪い
755デフォルトの名無しさん
2017/11/06(月) 16:15:07.42ID:5ghIEcyF 散々、荒らされたけどこれで決着か
どれくらい荒らされてたんだっけ?
半年?
どれくらい荒らされてたんだっけ?
半年?
756デフォルトの名無しさん
2017/11/06(月) 16:26:03.44ID:xdkFQOua それぐらいじゃない?
流石にこんなに長期間荒らされたら誰だって対策もとるし、
過剰反応とかなんとか苦情を言い出すのは自演してる荒らし意外いないわ
流石にこんなに長期間荒らされたら誰だって対策もとるし、
過剰反応とかなんとか苦情を言い出すのは自演してる荒らし意外いないわ
757デフォルトの名無しさん
2017/11/06(月) 16:33:56.86ID:5ghIEcyF 一般人を装った荒らしが文句を言うかもしれないけど、
ここは初心者用の質問スレだから、荒らしの排除は誰からも文句でないよ
ここは初心者用の質問スレだから、荒らしの排除は誰からも文句でないよ
758デフォルトの名無しさん
2017/11/06(月) 16:40:49.63ID:xdkFQOua これだけ注意しても荒らしは意固地になって自演してくれるわけだから
ある意味、わかりやすい
ある意味、わかりやすい
759デフォルトの名無しさん
2017/11/06(月) 18:00:13.17ID:RNAOm4Mq760デフォルトの名無しさん
2017/11/06(月) 18:44:46.08ID:5ghIEcyF761デフォルトの名無しさん
2017/11/06(月) 22:49:22.33ID:tjV5ukzM 【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://mevius.2ch.net/test/read.cgi/tech/1155031689/
なんか連投してる奴がいて落ちたな
http://mevius.2ch.net/test/read.cgi/tech/1155031689/
なんか連投してる奴がいて落ちたな
762デフォルトの名無しさん
2017/11/07(火) 07:31:48.57ID:aiMeo2fF class Hoge
require 'matrix'
class Vector
def huga
return "huga"
end
end
def self.get_vector(array)
return Vector[ *array ]
end
end
p Hoge.get_vector([1,2,3])
#=> 11:in `get_vector': undefined method `[]' for Hoge::Vector:Class (NoMethodError)
これやるとVectorの元のメソッドが未定義っていわれるんだけど、
オープンクラスなライブラリとそうじゃないライブラリがあるの?
class Vector < Vectorって派生させてやればメソッドの追加はできるけど、ものすごく気になる
require 'matrix'
class Vector
def huga
return "huga"
end
end
def self.get_vector(array)
return Vector[ *array ]
end
end
p Hoge.get_vector([1,2,3])
#=> 11:in `get_vector': undefined method `[]' for Hoge::Vector:Class (NoMethodError)
これやるとVectorの元のメソッドが未定義っていわれるんだけど、
オープンクラスなライブラリとそうじゃないライブラリがあるの?
class Vector < Vectorって派生させてやればメソッドの追加はできるけど、ものすごく気になる
763デフォルトの名無しさん
2017/11/07(火) 08:10:41.00ID:uepCx6fG クラスを一旦閉じてから、また開けば?
764デフォルトの名無しさん
2017/11/07(火) 08:46:40.88ID:pIiosI/w 現実を正確にとらえる力や想像力が無いのが分かりやすく露呈してて
面白い流れだったから期待してたけど、あまり伸びなかったね
まともな頭のやつは流石にドン引きしたか
面白い流れだったから期待してたけど、あまり伸びなかったね
まともな頭のやつは流石にドン引きしたか
765デフォルトの名無しさん
2017/11/07(火) 09:20:39.93ID:aiMeo2fF766デフォルトの名無しさん
2017/11/07(火) 10:14:55.61ID:sYu75wDW Hogeクラス内でVectorクラスを定義すると、Hoge::Vectorクラスを定義する事になる
当然、require 'matrix'でロードされるのはHoge::Vectorクラスではなく、トップレベルで定義されたVectorクラスだから、違うクラスを定義している事になる
self.get_vector(array)メソッドはmatrixのVectorクラスではなくHoge::Vectorクラスのメソッドを呼び出そうとしてそんなメソッドはありませんよって言ってるわけ
matrixのVectorクラスはトップレベルで定義されているからどこからでも呼べるけど、
追加の定義を行うにはトップレベルで記述するか、下記のように記述する必要がある
class Hoge
require 'matrix'
class ::Vector
def huga
return "huga"
end
end
end
p Vector[1,2,3].huga
それはそうと、初心者用の質問スレで質問をブッチして意味不明な事を言い出す奴は何考えてるんだ?
ここは初心者用の質問スレだぞ?
そんなに自己主張したいなら他スレ行けよ
当然、require 'matrix'でロードされるのはHoge::Vectorクラスではなく、トップレベルで定義されたVectorクラスだから、違うクラスを定義している事になる
self.get_vector(array)メソッドはmatrixのVectorクラスではなくHoge::Vectorクラスのメソッドを呼び出そうとしてそんなメソッドはありませんよって言ってるわけ
matrixのVectorクラスはトップレベルで定義されているからどこからでも呼べるけど、
追加の定義を行うにはトップレベルで記述するか、下記のように記述する必要がある
class Hoge
require 'matrix'
class ::Vector
def huga
return "huga"
end
end
end
p Vector[1,2,3].huga
それはそうと、初心者用の質問スレで質問をブッチして意味不明な事を言い出す奴は何考えてるんだ?
ここは初心者用の質問スレだぞ?
そんなに自己主張したいなら他スレ行けよ
767デフォルトの名無しさん
2017/11/07(火) 10:33:50.08ID:uepCx6fG >Vector[ *array ]
Vector クラスに、[ ] のメソッドが無いのだろ
Vector クラス内で、Vector を使っているのが、おかしいのかも?
self を使えば?
メタプログラミングは、この本を読む。
メタプログラミング Ruby 第2版、2015
「ruby オープンクラス」で検索して
Vector クラスに、[ ] のメソッドが無いのだろ
Vector クラス内で、Vector を使っているのが、おかしいのかも?
self を使えば?
メタプログラミングは、この本を読む。
メタプログラミング Ruby 第2版、2015
「ruby オープンクラス」で検索して
768デフォルトの名無しさん
2017/11/07(火) 10:51:58.21ID:AVR6D+uA Vectorに[]あるから
769デフォルトの名無しさん
2017/11/07(火) 11:41:45.24ID:aiMeo2fF Rubyの内部クラスの定義ってそういう事なんだ
すごく勉強になった
ついでにもう一つ質問
特定の内部クラスとしてtopレベルにあるクラスを継承した時、
クラスの一部が機能しなくなるクラスってあるの?
継承すれば元のクラスの全部を引き継ぐんだよね?
すごく勉強になった
ついでにもう一つ質問
特定の内部クラスとしてtopレベルにあるクラスを継承した時、
クラスの一部が機能しなくなるクラスってあるの?
継承すれば元のクラスの全部を引き継ぐんだよね?
770デフォルトの名無しさん
2017/11/07(火) 16:38:43.71ID:speVoQlz >>761
どうせおまえが犯人だろ
どうせおまえが犯人だろ
771デフォルトの名無しさん
2017/11/07(火) 16:58:38.40ID:qTtPzD5n772デフォルトの名無しさん
2017/11/07(火) 20:00:55.15ID:twCDXPE4 同じRubyファイル内で定義したメソッドを別のメソッド内で呼び出すことってできる?
AAA.rbってファイルがあって、その中に『def A』ってメソッドと『def B』ってメソッドがあって、メソッドBの中でメソッドAを呼び出す的な
AAA.rbってファイルがあって、その中に『def A』ってメソッドと『def B』ってメソッドがあって、メソッドBの中でメソッドAを呼び出す的な
773デフォルトの名無しさん
2017/11/07(火) 20:18:12.84ID:EPRxDT20 def a
hoge
end
def b
a
end
hoge
end
def b
a
end
774デフォルトの名無しさん
2017/11/07(火) 20:22:59.97ID:twCDXPE4 ごめん、普通にできた
775デフォルトの名無しさん
2017/11/07(火) 21:07:47.29ID:PZcCqrnZ クラスメソッド、インスタンスメソッドなど継承される。
変数に関する記憶が怪しかったからちょっと確認したら、
クラス自身のインスタンス変数のみが警鐘されない買った。
class A
X = self # 定数は継承される!
@y = self # クラス自身のインスタンス変数は継承されない!
@@z = self # クラス変数は継承されう!
end
class B < A
p X: X, y: @y, z: @@z
# => {:X=>A, :y=>nil, :z=>A}
end
変数に関する記憶が怪しかったからちょっと確認したら、
クラス自身のインスタンス変数のみが警鐘されない買った。
class A
X = self # 定数は継承される!
@y = self # クラス自身のインスタンス変数は継承されない!
@@z = self # クラス変数は継承されう!
end
class B < A
p X: X, y: @y, z: @@z
# => {:X=>A, :y=>nil, :z=>A}
end
776デフォルトの名無しさん
2017/11/07(火) 21:09:24.61ID:PZcCqrnZ777デフォルトの名無しさん
2017/11/07(火) 21:09:59.57ID:hhPr1fc6778デフォルトの名無しさん
2017/11/07(火) 22:04:06.56ID:sYu75wDW >>777
いい加減うせろよ荒らし
これ以上スレの進行を妨害するな
それと下記のテンプレ読めや
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
いい加減うせろよ荒らし
これ以上スレの進行を妨害するな
それと下記のテンプレ読めや
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
779デフォルトの名無しさん
2017/11/08(水) 08:00:52.41ID:jFXmR+bn >>778
だからそれを他人に強制して何か変えた気になる前にあなたの考えできちんと行動しろと言われているのでは
だからそれを他人に強制して何か変えた気になる前にあなたの考えできちんと行動しろと言われているのでは
780デフォルトの名無しさん
2017/11/08(水) 09:11:49.22ID:JQY6Yohe >>779
お前モナ
お前モナ
781デフォルトの名無しさん
2017/11/08(水) 10:02:46.51ID:D96h8IHt テンプレのおかげで誰が荒らしかすぐ分るようになったな
さすがに半年以上も荒らされて、みんなぶち切れてたし
さすがに半年以上も荒らされて、みんなぶち切れてたし
782デフォルトの名無しさん
2017/11/08(水) 10:09:02.34ID:hy4K9jZ1 なかなか面白い流れだな
783デフォルトの名無しさん
2017/11/08(水) 10:28:19.29ID:BuB9+Tz4 コードで間接参照の概念が必要になったとき、
Arrayクラスでオブジェクトを包装してやり取りしてるんだけど
Ruby的には正しいのコレ?
Arrayクラスでオブジェクトを包装してやり取りしてるんだけど
Ruby的には正しいのコレ?
784デフォルトの名無しさん
2017/11/08(水) 11:01:17.22ID:/a2FPcjq そもそも何が間違いかなんて見方はナンセンス
筋が悪いとは思う
筋が悪いとは思う
785デフォルトの名無しさん
2017/11/08(水) 13:25:58.44ID:KVemNC3B >>783
Rubyに限らないが、一般論でいうなら、低い抽象度で物事を考えすぎてる
例えば文字列中のカーソルの位置を進めるなら、
それは pos[0] += 1 ではなく cursor.next_char() だろ
Rubyに限らないが、一般論でいうなら、低い抽象度で物事を考えすぎてる
例えば文字列中のカーソルの位置を進めるなら、
それは pos[0] += 1 ではなく cursor.next_char() だろ
786デフォルトの名無しさん
2017/11/08(水) 20:27:09.27ID:yXBCWp2w Rubyでポインタが必要だと思ったことがまずない
Cを難解にしてるのがポインタだし
Cを難解にしてるのがポインタだし
787デフォルトの名無しさん
2017/11/08(水) 23:27:04.92ID:CJyDItek 関数やprocやlambdaでSystemStackErrorを起こすとRuby自体が落ちちゃうんだけどこれって仕様?
https://ideone.com/GmkU9W
IDEONEでは何も問題ないんだけど
うちの環境(UbuntuとWindows8.1)ではnested_method1の2回目の途中でRubyが落ちる
1.8.7ではなぜか問題なく動くがそれ以外のバージョンは全て全滅
https://ideone.com/GmkU9W
IDEONEでは何も問題ないんだけど
うちの環境(UbuntuとWindows8.1)ではnested_method1の2回目の途中でRubyが落ちる
1.8.7ではなぜか問題なく動くがそれ以外のバージョンは全て全滅
788デフォルトの名無しさん
2017/11/08(水) 23:28:13.06ID:CJyDItek ああ1行目は関数じゃなくてメソッドね
789デフォルトの名無しさん
2017/11/09(木) 08:01:53.37ID:LcbWCl7/ メモリーがハード故障起こしてると落ちたりするし、マルウェアからの保護機能で落とされてる可能性も有る
落ちる現象がハードウェア要因なのかソフトウェア要因なのかいまいち判断付かないから、
CPUからM/B、OSのバージョンとかRubyのインスコ環境や実行環境をもっと書いて
なんだったらVMWareでシンプルな環境を構築してそこでコードを試して、落ちるかどうか確認する方法もある
落ちる現象がハードウェア要因なのかソフトウェア要因なのかいまいち判断付かないから、
CPUからM/B、OSのバージョンとかRubyのインスコ環境や実行環境をもっと書いて
なんだったらVMWareでシンプルな環境を構築してそこでコードを試して、落ちるかどうか確認する方法もある
790デフォルトの名無しさん
2017/11/09(木) 08:11:17.58ID:O2u0zvzZ >>787
ruby のBug だと思う。
手元の環境だと、2.4.2 2.3.5 2.5.0-preview1 rbx-3.84 でsegfault 、jruby-9.1.13.0 はsegfault は回避してるのを確認した。
1.9 以降で出てきたのは、ruby の実行エンジンが YARV 化されたタイミングでの問題だと思う。
ただ、スタック食いつぶす動作を安全に回避するのは面倒な上に、過度な再帰はプログラムの問題なので優先度は低い扱いになる気がする。
ruby のBug だと思う。
手元の環境だと、2.4.2 2.3.5 2.5.0-preview1 rbx-3.84 でsegfault 、jruby-9.1.13.0 はsegfault は回避してるのを確認した。
1.9 以降で出てきたのは、ruby の実行エンジンが YARV 化されたタイミングでの問題だと思う。
ただ、スタック食いつぶす動作を安全に回避するのは面倒な上に、過度な再帰はプログラムの問題なので優先度は低い扱いになる気がする。
791デフォルトの名無しさん
2017/11/09(木) 09:11:32.41ID:Zo52Bx6X 既知のバグなの?
792デフォルトの名無しさん
2017/11/09(木) 10:02:35.59ID:UInw5/Yz begin - rescue を外に書けってことかな
793デフォルトの名無しさん
2017/11/09(木) 10:47:34.59ID:LcbWCl7/ ttps://bugs.ruby-lang.org/projects/ruby/wiki/HowtoReportJa
バグレポートのやりかたのページ貼っておく
バグレポートのやりかたのページ貼っておく
794デフォルトの名無しさん
2017/11/09(木) 11:09:27.98ID:Zo52Bx6X >>792
ruby落ちて
ruby落ちて
795デフォルトの名無しさん
2017/11/09(木) 11:10:33.69ID:Zo52Bx6X るんだが
796デフォルトの名無しさん
2017/11/09(木) 11:21:25.84ID:UInw5/Yz 外に書いたら落ちないんじゃね
797デフォルトの名無しさん
2017/11/09(木) 12:44:30.09ID:lsXbZUw6 >>789-790
ありがとう
SEGVだったんだね
確認してみたところ同様の問題はいくつも報告されてたわ
https://bugs.ruby-lang.org/issues/13412
https://bugs.ruby-lang.org/issues/13596
ちなみに
RUBY_THREAD_VM_STACK_SIZEを10000とか小さい値にすると
>>787は想定通り動く
ありがとう
SEGVだったんだね
確認してみたところ同様の問題はいくつも報告されてたわ
https://bugs.ruby-lang.org/issues/13412
https://bugs.ruby-lang.org/issues/13596
ちなみに
RUBY_THREAD_VM_STACK_SIZEを10000とか小さい値にすると
>>787は想定通り動く
798デフォルトの名無しさん
2017/11/09(木) 15:30:22.12ID:LcbWCl7/ #terget = Proc.new do |x|
#p "nest_in"
#x.call(x)
#p "nest_out"
#end
#terget.call(terget)
proc使ってstack level too deep (SystemStackError)が出るコードって言ったらこんな感じか?
#p "nest_in"
#x.call(x)
#p "nest_out"
#end
#terget.call(terget)
proc使ってstack level too deep (SystemStackError)が出るコードって言ったらこんな感じか?
799デフォルトの名無しさん
2017/11/09(木) 17:52:29.86ID:hsGRI/CZ ポインタが難解なのではない、C/C++のポインタの実装が難解なのだ
800デフォルトの名無しさん
2017/11/09(木) 17:58:10.14ID:Kt7ooYYm >>798
(f=->{f[]})[]
(f=->{f[]})[]
801デフォルトの名無しさん
2017/11/09(木) 19:19:57.54ID:UInw5/Yz >>799
+1
+1
802デフォルトの名無しさん
2017/11/09(木) 19:47:42.78ID:LcbWCl7/ 平易といわれようが読みやすいんだから仕方がない
def func_recall()
func_recall()
end
proc{func_recall()}.call
def func_recall()
func_recall()
end
proc{func_recall()}.call
803デフォルトの名無しさん
2017/11/09(木) 19:58:50.93ID:EJhAj4oK 昨日と同じように今日も池沼のフリして荒らしてきたか
804デフォルトの名無しさん
2017/11/09(木) 20:10:42.01ID:Zo52Bx6X 荒らし本人は自演がばれてないと本気で思っていそう
今のうちに例のテンプレ貼っとく
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
今のうちに例のテンプレ貼っとく
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
805デフォルトの名無しさん
2017/11/10(金) 21:19:41.48ID:zSzvlQjG new以外のインスタンス生成方法を持ってるクラスって、
派生させても元のクラスのインスタンスを生成するんだね
全てのメソッド書き換えるのがすごく面倒なんだけど何か良い方法ない?
派生させても元のクラスのインスタンスを生成するんだね
全てのメソッド書き換えるのがすごく面倒なんだけど何か良い方法ない?
806デフォルトの名無しさん
2017/11/10(金) 22:05:04.82ID:tus45AjF self.class.new
807デフォルトの名無しさん
2017/11/10(金) 22:51:06.22ID:zSzvlQjG class MyArray < Array
end
p (MyArray[1,2,3] + MyArray[1,2,3]).class
#=>Array
上のコードを見てもらえば分るけど、
Arrayを継承したMyArrayのインスタンス同士の演算を行うと、MyArrayでなくArrayのインスタンスが出力される
全てのメソッドの出力をMyArrayのインスタンスになるようにしたいんだけど、
メソッドを全部書き換える以外に良い方法って何かない?
end
p (MyArray[1,2,3] + MyArray[1,2,3]).class
#=>Array
上のコードを見てもらえば分るけど、
Arrayを継承したMyArrayのインスタンス同士の演算を行うと、MyArrayでなくArrayのインスタンスが出力される
全てのメソッドの出力をMyArrayのインスタンスになるようにしたいんだけど、
メソッドを全部書き換える以外に良い方法って何かない?
808デフォルトの名無しさん
2017/11/10(金) 23:47:08.43ID:fJV6zsPP >>807
ソースコードを見てみるとArrayの派生クラスであってもArrayとして作成されるようになってる
https://github.com/ruby/ruby/blob/trunk/array.c#L3643
度々似たようなやり取りが起こるけど、この件についてはRubyの仕様として、
改善される兆しが見えない (開発者の変更する必要性が薄そう)
正攻法となるとメーリングリストのruby-devに必要性を訴えて改善するくらいになるんじゃないかなあ
ソースコードを見てみるとArrayの派生クラスであってもArrayとして作成されるようになってる
https://github.com/ruby/ruby/blob/trunk/array.c#L3643
度々似たようなやり取りが起こるけど、この件についてはRubyの仕様として、
改善される兆しが見えない (開発者の変更する必要性が薄そう)
正攻法となるとメーリングリストのruby-devに必要性を訴えて改善するくらいになるんじゃないかなあ
809デフォルトの名無しさん
2017/11/11(土) 00:16:49.19ID:JLG7hn9J >>807
ビルトインクラスは継承すんな、てのがあるらしい
ビルトインクラスは継承すんな、てのがあるらしい
810デフォルトの名無しさん
2017/11/11(土) 01:33:08.56ID:XLuIumW0 確かに、出力するオブジェクトのクラスをメソッドの書き換えしないで派生先や派生元に切り替えられたら便利だよな
811デフォルトの名無しさん
2017/11/11(土) 04:45:48.84ID:TdyG/ulQ しかしそもそもArrayとか継承したいクラスだよな
オープンクラスで直接Array自体の挙動を変えてしまうと
何か問題が起こったときに怖い
オープンクラスで直接Array自体の挙動を変えてしまうと
何か問題が起こったときに怖い
812デフォルトの名無しさん
2017/11/11(土) 09:50:02.65ID:5mgMmggv 方法を聞いているんだから感想を言っててどうするよ
一つの方法としてMarshal.dumpとMarshal.load使うってのはどうか?
メソッドで派生元クラスのインスタンスがでてきたら、
そのインスタンスをMarshal.dumpしてクラス部分だけ書き換えてMarshal.loadしてクラスを変えるわけ
一つの方法としてMarshal.dumpとMarshal.load使うってのはどうか?
メソッドで派生元クラスのインスタンスがでてきたら、
そのインスタンスをMarshal.dumpしてクラス部分だけ書き換えてMarshal.loadしてクラスを変えるわけ
813デフォルトの名無しさん
2017/11/11(土) 11:50:45.38ID:AwGKm55U どの言語でも、Array, String などの基本クラスは継承できないし、継承してはならない
prototype.js というライブラリは、基本クラスの動作を上書きして、変更したため、
モンキーパッチと言って、非常に嫌われた
ただし、Rails のような権威が、基本クラスにメソッドを追加するのは、認められている。
これらは、開発保守が継続して行われるため
つまり、個人レベルではダメ
prototype.js というライブラリは、基本クラスの動作を上書きして、変更したため、
モンキーパッチと言って、非常に嫌われた
ただし、Rails のような権威が、基本クラスにメソッドを追加するのは、認められている。
これらは、開発保守が継続して行われるため
つまり、個人レベルではダメ
814デフォルトの名無しさん
2017/11/11(土) 11:54:48.07ID:7DvP3YTX どうでもいいよ
どうせRubyなんか書捨てスクリプトにしか使わないし
どうせRubyなんか書捨てスクリプトにしか使わないし
815デフォルトの名無しさん
2017/11/11(土) 12:07:00.75ID:TdyG/ulQ 配列が使いたいときは代替eachが使いたいから
EnumerableかEnumeratorを継承するとか?
EnumerableかEnumeratorを継承するとか?
816デフォルトの名無しさん
2017/11/11(土) 12:08:40.11ID:v8o/qZh1 + が返すクラスをどうすべきかってだけで、他のメソッドはできるだけ継承したクラスを返すようになってるよ
817デフォルトの名無しさん
2017/11/11(土) 12:34:01.09ID:AwGKm55U 基本クラスは、継承するな!
継承よりも、委譲
継承よりも、委譲
818デフォルトの名無しさん
2017/11/11(土) 14:10:03.21ID:BdEcqbw0 処理系に依ってEnumerable#mapとArray#mapが別実装だったり同じだったりして気持ち悪いから
Array継承するくらいならEnumerableを継承するわ
Array継承するくらいならEnumerableを継承するわ
819デフォルトの名無しさん
2017/11/11(土) 14:21:19.83ID:JLG7hn9J820デフォルトの名無しさん
2017/11/11(土) 15:07:21.47ID:5mgMmggv また荒らしが進行妨害してるのか
方法聞いてるレスだっつってんだろ
毎度毎度、スレの質問無視して自演で持論を語って荒らすのやめろ
ここは初心者用の質問スレだ
方法聞いてるレスだっつってんだろ
毎度毎度、スレの質問無視して自演で持論を語って荒らすのやめろ
ここは初心者用の質問スレだ
821デフォルトの名無しさん
2017/11/11(土) 16:38:25.00ID:XLuIumW0 確かに、聞いてたのは方法だったな
明らかに見当違いなレス返してた荒らしもいたし
ごめん
質問への回答だけどメソッド書き換えせずにという事だから、
const_get、const_setを使ってその場だけクラスを入れ替えるというのは?
今、適当に思いついたので検証してないけど
明らかに見当違いなレス返してた荒らしもいたし
ごめん
質問への回答だけどメソッド書き換えせずにという事だから、
const_get、const_setを使ってその場だけクラスを入れ替えるというのは?
今、適当に思いついたので検証してないけど
822デフォルトの名無しさん
2017/11/11(土) 21:37:18.75ID:05iXsNcy このスレって雑談OKなのに何言ってるんだか
823デフォルトの名無しさん
2017/11/11(土) 22:58:55.05ID:+LVMEIXu では雑談をしましょう
型Aを渡したときは型AAで、型Bを渡したときは型BBで
こういったことが簡単にしたければ、静的型の機能を使うのが一番手軽で自然
なぜなら構文レベルでサポートされてるから
(C++で言うところのテンプレートとか)
なのでRubyに静的型を導入するのが手っ取り早い
結果的にはうまくいかなかったんですが、TypeAnnotationをつけて
頑張ろうっていうのを余暇でやっているらしく
Ruby 3で導入しようとしている型システムは型推論だけでどうにかしようという
アプローチとは別のアプローチ
2010年代のプログラミング言語は型ありなのが当たり前になってきているので
Rubyはだいぶ置いてけぼり感(笑)があります
ですので、コミュニティ内での危機感も高いと思います
型Aを渡したときは型AAで、型Bを渡したときは型BBで
こういったことが簡単にしたければ、静的型の機能を使うのが一番手軽で自然
なぜなら構文レベルでサポートされてるから
(C++で言うところのテンプレートとか)
なのでRubyに静的型を導入するのが手っ取り早い
結果的にはうまくいかなかったんですが、TypeAnnotationをつけて
頑張ろうっていうのを余暇でやっているらしく
Ruby 3で導入しようとしている型システムは型推論だけでどうにかしようという
アプローチとは別のアプローチ
2010年代のプログラミング言語は型ありなのが当たり前になってきているので
Rubyはだいぶ置いてけぼり感(笑)があります
ですので、コミュニティ内での危機感も高いと思います
824デフォルトの名無しさん
2017/11/11(土) 23:03:47.07ID:JLG7hn9J それは雑談ではなくて荒らし
825デフォルトの名無しさん
2017/11/12(日) 00:27:53.41ID:WkrbFi3G 雑談にみせかけた荒らしをずっとやってる奴が何か文句言ってるけど、
初心者の質問スレで質問無視してスレ妨害し続けてたらみんなぶち切れるわな
もう半年以上になるんやで?
初心者の質問スレで質問無視してスレ妨害し続けてたらみんなぶち切れるわな
もう半年以上になるんやで?
826デフォルトの名無しさん
2017/11/12(日) 00:40:27.97ID:Ob05ibl6 質問なんてめったにないでしょ
827デフォルトの名無しさん
2017/11/12(日) 01:01:09.44ID:WkrbFi3G そうやって質問のレスを無視して荒らすから、
みんなぶち切れてるんやで?
いい加減にしとけよ
みんなぶち切れてるんやで?
いい加減にしとけよ
828デフォルトの名無しさん
2017/11/12(日) 01:03:23.41ID:Ob05ibl6 俺は荒らしてないよ。そうやって絡んでくる君のほうが荒らしじゃないの
829デフォルトの名無しさん
2017/11/12(日) 01:08:30.49ID:K4QprXz0 ID:Ob05ibl6
ほぼ毎日、スレに質問ついてるのに何処見てるの?
もしかしておまえが例の荒らし?
テンプレ貼っておくね
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
ほぼ毎日、スレに質問ついてるのに何処見てるの?
もしかしておまえが例の荒らし?
テンプレ貼っておくね
>荒らしを構ってる奴は荒らし本人の自演だから、構ったりせず見つけ次第、自演を指摘して排除すること
>荒らし叩きに見せて持論を言い出す奴も荒らし本人だから、これも自演を指摘して排除すること
>他の言語について話そうとする奴は、その言語スレから排除されてRubyスレに流れ着いた荒らしだから、これも構ったりせず元の言語スレへ誘導すること
830デフォルトの名無しさん
2017/11/12(日) 01:14:32.30ID:Ob05ibl6 だから俺じゃないってw
俺普通に質問に答えてやったりしてるし
俺普通に質問に答えてやったりしてるし
831デフォルトの名無しさん
2017/11/12(日) 01:16:43.11ID:WkrbFi3G >質問なんてめったにないでしょ
ってどのスレの話?
ってどのスレの話?
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年近く開発環境作ってるだけのことはあるわ
932デフォルトの名無しさん
2017/11/23(木) 13:55:25.39ID:YnWOoALk 現在のつづりの途中からファイル内全検索で補完候補を表示したり、クラスやモジュールのメソッドや定数まで定義したもの全て(もちろん、自分で定義したものも含む)から関連した補完候補を表示してくれたり、
ファイルジャンプやエラー時の該当コードへのジャンプジャンプ機能、
変数ウィンドウでリアルタイムにグローバル、ローカル等表示機能、
デバッグ時のブレークポイント・ステップイン・ステップアウトといった基本から、シームレスにコンソール入力できCLIでデバッグしたりと、
RDEを使えるならずっと使い続けたい
逆にRDEで欠けているところって何かある?
ファイルジャンプやエラー時の該当コードへのジャンプジャンプ機能、
変数ウィンドウでリアルタイムにグローバル、ローカル等表示機能、
デバッグ時のブレークポイント・ステップイン・ステップアウトといった基本から、シームレスにコンソール入力できCLIでデバッグしたりと、
RDEを使えるならずっと使い続けたい
逆にRDEで欠けているところって何かある?
933デフォルトの名無しさん
2017/11/23(木) 14:09:00.28ID:AMXsylzt934デフォルトの名無しさん
2017/11/23(木) 14:18:55.83ID:DqyU4UwD >>932
どれだけ高度な機能があろうが所詮Rubyでしか使えないだろ
Rubyがメインの開発でも開発作業というのはRubyだけで完結するものではない
VSCodeはシェルスクリプトもHTMLもCSSもJSもXMLもJSONもYAMLも他の言語も何でもそこそこ便利に扱える
どれだけ高度な機能があろうが所詮Rubyでしか使えないだろ
Rubyがメインの開発でも開発作業というのはRubyだけで完結するものではない
VSCodeはシェルスクリプトもHTMLもCSSもJSもXMLもJSONもYAMLも他の言語も何でもそこそこ便利に扱える
935デフォルトの名無しさん
2017/11/23(木) 14:24:20.62ID:YnWOoALk936デフォルトの名無しさん
2017/11/23(木) 14:28:42.62ID:DqyU4UwD937デフォルトの名無しさん
2017/11/23(木) 14:45:04.91ID:YnWOoALk >>636
HTMLでデバッグってどういう事?
強調表示と文章構造化機能があり、
Rubyから扱うならRDEの変数ウィンドウだってあるんだから、見ながらできるでしょ
RDEにはコンソールウィンドウだってあるんだから、どんなやり方だって可能だよ
HTMLでデバッグってどういう事?
強調表示と文章構造化機能があり、
Rubyから扱うならRDEの変数ウィンドウだってあるんだから、見ながらできるでしょ
RDEにはコンソールウィンドウだってあるんだから、どんなやり方だって可能だよ
938デフォルトの名無しさん
2017/11/23(木) 14:47:34.43ID:tA8CL5L/939デフォルトの名無しさん
2017/11/23(木) 19:55:08.71ID:AMXsylzt940デフォルトの名無しさん
2017/11/23(木) 20:59:27.76ID:uF7hi9HH VSCodeってメール読めるの?
941デフォルトの名無しさん
2017/11/23(木) 21:26:51.78ID:3UvXGadQ VSCode使ってるようなチームが今時開発のコミュニケーションにメールはないでしょ
githubのプルリクを扱ったりSlackの送受信したりするプラグインはもちろんあるよ
githubのプルリクを扱ったりSlackの送受信したりするプラグインはもちろんあるよ
942デフォルトの名無しさん
2017/11/23(木) 21:56:15.36ID:MR0Gu97U IronRubyて死んだと思っていいの?
943デフォルトの名無しさん
2017/11/23(木) 22:07:17.46ID:tA8CL5L/ >>939
機能の豊富さやモダンな設計部分は確かに惹かれる点がないわけではない
ただ、VSCodeには絶対移れない理由は、カーソル移動すらホームポジションから指を
離さないといけない部分だ(Mac版はいいんだが)
もちろん「そんなのカスタマイズでどうにでもなるよ」という意見は承知しているが、すべての機能を
再配置するには無理があるし、拡張機能まで考えるとキーバインドはなるべくデフォルトでいきたい
そうなるとカーソル移動にカーソルキー以外のキーが割当たってないのは大いなる不満だな
ちなみにこれは実際にVSCodeを使ってみた感想だ
Emacs風キーバインドとかも試してはみたが、不完全だし、拡張機能を入れると簡単に破綻した
機能の豊富さやモダンな設計部分は確かに惹かれる点がないわけではない
ただ、VSCodeには絶対移れない理由は、カーソル移動すらホームポジションから指を
離さないといけない部分だ(Mac版はいいんだが)
もちろん「そんなのカスタマイズでどうにでもなるよ」という意見は承知しているが、すべての機能を
再配置するには無理があるし、拡張機能まで考えるとキーバインドはなるべくデフォルトでいきたい
そうなるとカーソル移動にカーソルキー以外のキーが割当たってないのは大いなる不満だな
ちなみにこれは実際にVSCodeを使ってみた感想だ
Emacs風キーバインドとかも試してはみたが、不完全だし、拡張機能を入れると簡単に破綻した
944デフォルトの名無しさん
2017/11/23(木) 22:09:43.98ID:UCxNEg1Y 慣れているものがあるのにわざわざ移る必要はないよ、
便利な機能は追加されているけど
それの習熟までの時間考えるとマイナスじゃん
便利な機能は追加されているけど
それの習熟までの時間考えるとマイナスじゃん
945デフォルトの名無しさん
2017/11/23(木) 22:17:47.02ID:SZ3Ksiuh946デフォルトの名無しさん
2017/11/23(木) 22:25:49.79ID:AMXsylzt947デフォルトの名無しさん
2017/11/23(木) 23:11:44.50ID:tA8CL5L/ >>945
それならばVSCodeが正しいキーバインドを提供すればいいだけなのに、それはされなかった
Mac版VSCodeに至ってはカーソル移動はEmacsと同じだ
(というかMacのカーソル移動は基本Emacsと同じなんだが)
それならばVSCodeが正しいキーバインドを提供すればいいだけなのに、それはされなかった
Mac版VSCodeに至ってはカーソル移動はEmacsと同じだ
(というかMacのカーソル移動は基本Emacsと同じなんだが)
948デフォルトの名無しさん
2017/11/23(木) 23:43:56.00ID:SZ3Ksiuh MacがEmacsと同じ?どうやってコピペするんだよw
949デフォルトの名無しさん
2017/11/23(木) 23:52:47.43ID:3UvXGadQ Macは通常のショートカットキーはCtrlではなくコマンドキーという別のキーを使うんだよ
950デフォルトの名無しさん
2017/11/24(金) 00:17:48.44ID:rLZHdQ3Q 便利だけど重いんだよな
951デフォルトの名無しさん
2017/11/24(金) 00:28:12.46ID:rLZHdQ3Q 踏んだか
次スレ立ててくるわ
次スレ立ててくるわ
952デフォルトの名無しさん
2017/11/24(金) 00:37:55.32ID:rLZHdQ3Q953デフォルトの名無しさん
2017/11/24(金) 00:53:32.89ID:YIPeFSUb954デフォルトの名無しさん
2017/11/24(金) 07:14:12.21ID:WYDS9FKw955デフォルトの名無しさん
2017/11/24(金) 07:53:06.70ID:fclmHXnw 多分だけど、客とのメールまでプログラミングエディタでやりたがる基地外は世の中にあまりいないだけじゃないかな
Emacs老害の全盛期と違って、今の開発者はさすがにエディタの他にブラウザだけは常に開いてるもんだし
Emacs老害の全盛期と違って、今の開発者はさすがにエディタの他にブラウザだけは常に開いてるもんだし
956デフォルトの名無しさん
2017/11/24(金) 08:06:52.50ID:h77OWA0a 今時だと連絡手段が社内SNSだったりチャットだったりビデオ通話だったりと多様化してどうせブラウザや他のアプリも触らざるを得ないんだから
メールだけをテキストエディタ内でやることにあまり意味を感じない人が増えたんだろうな
個人的には開発エディタに客のメールが届くのは精神衛生上も嫌だが
メールだけをテキストエディタ内でやることにあまり意味を感じない人が増えたんだろうな
個人的には開発エディタに客のメールが届くのは精神衛生上も嫌だが
957デフォルトの名無しさん
2017/11/24(金) 13:57:41.39ID:jGNvQKc+ メールというモデルが現代には合わなくなってきただけなんだけどね。
958デフォルトの名無しさん
2017/11/24(金) 16:00:10.93ID:tVS6N6Kc それは全くの嘘である
嘘を言うのを止めたまえ
嘘つき君
嘘を言うのを止めたまえ
嘘つき君
959デフォルトの名無しさん
2017/11/24(金) 17:39:01.93ID:WYDS9FKw960デフォルトの名無しさん
2017/11/24(金) 18:04:37.20ID:3vzBmmRs 注意、
荒らしが自演でスレを荒らそうとしているので以下スルーしてください
今後この話題を続ける人は荒らしである事がほぼ間違いないので、
規制等に巻き込まれないようご注意下さい
荒らしが自演でスレを荒らそうとしているので以下スルーしてください
今後この話題を続ける人は荒らしである事がほぼ間違いないので、
規制等に巻き込まれないようご注意下さい
961デフォルトの名無しさん
2017/11/24(金) 18:06:23.42ID:WYDS9FKw と、荒らしが言っているのでご注意ください
962デフォルトの名無しさん
2017/11/24(金) 18:10:00.93ID:tVS6N6Kc まずパッと読んで、
「基地外」というあおりを受けて本当に基地外が反応した!
と感じたであろう
普通に読めば支離滅裂で、意味が分からない
他人が書いた難解なコードとかに出会うことがあって
解読しようと思うんだがなかなか理解できなくて
そもそもこのコードはバグっているんじゃないか?
と思うことがある
まずアンカーミスをしているんじゃないかと疑う
>>947ではなくて>>941の可能性が高い
その上、引用する文章を間違えているんじゃないかと疑う
二行目を引用しているが、一行目を引用したかった可能性が高い
単にミスったのか、それとも支離滅裂なアレな人なのか
どちらでも同じことだが >>960よりはマシである
「基地外」というあおりを受けて本当に基地外が反応した!
と感じたであろう
普通に読めば支離滅裂で、意味が分からない
他人が書いた難解なコードとかに出会うことがあって
解読しようと思うんだがなかなか理解できなくて
そもそもこのコードはバグっているんじゃないか?
と思うことがある
まずアンカーミスをしているんじゃないかと疑う
>>947ではなくて>>941の可能性が高い
その上、引用する文章を間違えているんじゃないかと疑う
二行目を引用しているが、一行目を引用したかった可能性が高い
単にミスったのか、それとも支離滅裂なアレな人なのか
どちらでも同じことだが >>960よりはマシである
963デフォルトの名無しさん
2017/11/24(金) 18:30:21.92ID:3vzBmmRs 自演を繰り返す荒らしのマッチポンプですので、みなさんスルーをお願いします
今後この話題を続ける人は荒らしであることがほぼ間違いありません
巻き込まれないように、ご注意下さい
今後この話題を続ける人は荒らしであることがほぼ間違いありません
巻き込まれないように、ご注意下さい
964デフォルトの名無しさん
2017/11/24(金) 18:58:32.56ID:ZonWriwn やべ
gem書いてんだけどプルリク第一号が来てたのわからずにひと月放置しちまった
催促とかは来てないけど幻滅されてそう
gem書いてんだけどプルリク第一号が来てたのわからずにひと月放置しちまった
催促とかは来てないけど幻滅されてそう
965デフォルトの名無しさん
2017/11/24(金) 19:10:05.09ID:rLZHdQ3Q 荒れそうな話題だから今は止めとけ
それよりスレ立てのテンプレ、アレでいいのか?
書籍と開発環境と、後何必要?
それよりスレ立てのテンプレ、アレでいいのか?
書籍と開発環境と、後何必要?
966デフォルトの名無しさん
2017/11/24(金) 23:28:40.65ID:r53+zpq0 >>965
乙。あれでいいんじゃないかな
乙。あれでいいんじゃないかな
967デフォルトの名無しさん
2017/11/24(金) 23:48:17.03ID:ZonWriwn968デフォルトの名無しさん
2017/11/25(土) 03:00:07.46ID:vGfzXNpi VSCODEは使えなかったということでいいんだな
969デフォルトの名無しさん
2017/11/25(土) 03:47:28.06ID:ZoIPaTym emacsジジイは自慢のメール機能でメーリングリストに何か投稿してやれや
970デフォルトの名無しさん
2017/11/25(土) 09:43:05.58ID:IhD+SBpG チェリー本の発想が29日だってよ・・・
品薄なのか人気なのかよくわからんが
なぜ後も遅れる・・・(本日発売日)
品薄なのか人気なのかよくわからんが
なぜ後も遅れる・・・(本日発売日)
971デフォルトの名無しさん
2017/11/25(土) 11:05:50.65ID:RefiArAO _, -―- 、 _
,r’ ` ,
_.l /⌒ヽ /⌒ヽ !
( l ‘,.− 、! !,.−、’ l’`)
>.}⊂・⊃ ⊂・⊃ {く
.(_{ ≡ _ `^´_ ≡,}_)
ヽ_’´ `”´ `’ _ノ さだめじゃ
,<`8~「 ̄「~8´>、
/ |. 8 ヽ./ 8 | ヽ
〈 |=Po.o.9=| 〉
`ーL…____..」ー'”
├‐rー?ーr‐┤
し’ ゝJ
,r’ ` ,
_.l /⌒ヽ /⌒ヽ !
( l ‘,.− 、! !,.−、’ l’`)
>.}⊂・⊃ ⊂・⊃ {く
.(_{ ≡ _ `^´_ ≡,}_)
ヽ_’´ `”´ `’ _ノ さだめじゃ
,<`8~「 ̄「~8´>、
/ |. 8 ヽ./ 8 | ヽ
〈 |=Po.o.9=| 〉
`ーL…____..」ー'”
├‐rー?ーr‐┤
し’ ゝJ
972デフォルトの名無しさん
2017/11/25(土) 12:13:45.45ID:afKOSqxS 話を変えるけど、
過去スレをさかのぼってみたら、テンプレがかなり充実してた
初心者スレと統合する前の本スレへのリンクとか色々張ってあったけど、
今のテンプレのほうが面倒くさくなくて俺は好きだな
過去スレをさかのぼってみたら、テンプレがかなり充実してた
初心者スレと統合する前の本スレへのリンクとか色々張ってあったけど、
今のテンプレのほうが面倒くさくなくて俺は好きだな
973デフォルトの名無しさん
2017/11/25(土) 14:22:48.08ID:vGfzXNpi そいやemacsの2chブラウザってもう使えないのか
974デフォルトの名無しさん
2017/11/25(土) 18:32:31.63ID:afKOSqxS スレ違いだ
失せろ
失せろ
975デフォルトの名無しさん
2017/11/25(土) 20:46:19.88ID:IhD+SBpG せっかく久しぶりの入門書発売でも全く盛り上がらんな
976デフォルトの名無しさん
2017/11/25(土) 20:49:19.60ID:oOkyLeSs977デフォルトの名無しさん
2017/11/25(土) 20:51:46.96ID:X7an3KDk978デフォルトの名無しさん
2017/11/25(土) 21:52:47.44ID:9rIP/paY へたくそな自演だな
いつもの荒らしか
975デフォルトの名無しさん2017/11/25(土) 20:46:19.88ID:IhD+SBpG>>976>>977
せっかく久しぶりの入門書発売でも全く盛り上がらんな
976デフォルトの名無しさん2017/11/25(土) 20:49:19.60ID:oOkyLeSs
>>975
Rails時代が異常だったんだよ
島国の一部のヲタが愛好する言語に戻っただけ
977デフォルトの名無しさん2017/11/25(土) 20:51:46.96ID:X7an3KDk
>>975
Railsブームの頃にRuby始めた奴が
もう入門書レベルを卒業しちゃったからじゃね
いつもの荒らしか
975デフォルトの名無しさん2017/11/25(土) 20:46:19.88ID:IhD+SBpG>>976>>977
せっかく久しぶりの入門書発売でも全く盛り上がらんな
976デフォルトの名無しさん2017/11/25(土) 20:49:19.60ID:oOkyLeSs
>>975
Rails時代が異常だったんだよ
島国の一部のヲタが愛好する言語に戻っただけ
977デフォルトの名無しさん2017/11/25(土) 20:51:46.96ID:X7an3KDk
>>975
Railsブームの頃にRuby始めた奴が
もう入門書レベルを卒業しちゃったからじゃね
979デフォルトの名無しさん
2017/11/25(土) 22:15:02.16ID:iUpRsQIG どの本も値段が高すぎる。せめて電子書籍は半額以下でいいだろと思う
packtなんか年100ドルで読み放題やってたりするのに
packtなんか年100ドルで読み放題やってたりするのに
980デフォルトの名無しさん
2017/11/26(日) 00:03:12.91ID:QP3khMj1 じゃあそのpacktにある本を読んでいれば良いのでは?
981デフォルトの名無しさん
2017/11/26(日) 00:28:09.81ID:zBIai8/a 初心者向けrub本も良いけど、
rubyからOpenglでシェーダーを扱う書籍とか、
rubyで分散コンピューティングの書籍とか、
こう、興味を惹かれる内容の、中級者上級者向け書籍も必要だよ
rubyからOpenglでシェーダーを扱う書籍とか、
rubyで分散コンピューティングの書籍とか、
こう、興味を惹かれる内容の、中級者上級者向け書籍も必要だよ
983デフォルトの名無しさん
2017/11/26(日) 01:16:57.25ID:QP3khMj1 相葉 (‘◇‘)
松本 ノノ`∀´ル
二宮 ヽ.゚ー゚ノ
櫻井 (`・3・´)
大野 (´・∀・`)
松本 ノノ`∀´ル
二宮 ヽ.゚ー゚ノ
櫻井 (`・3・´)
大野 (´・∀・`)
984デフォルトの名無しさん
2017/11/26(日) 01:23:31.26ID:zBIai8/a >>982
スレの進行を妨害するなや
スレの進行を妨害するなや
985デフォルトの名無しさん
2017/11/26(日) 01:49:12.00ID:fYnoK36B >>へたくそな自演だな
とかコピペ張るやつの方も注意したら?
貴ノ花ばかり責めるマスゴミみたいなやつだな
とかコピペ張るやつの方も注意したら?
貴ノ花ばかり責めるマスゴミみたいなやつだな
986デフォルトの名無しさん
2017/11/26(日) 01:59:36.67ID:po9rLop3 荒らしは放置で!
荒らしと会話するな。
荒らしが喜ぶだけ。ずっと荒らしが居続けるだけ
荒らしと会話するな。
荒らしが喜ぶだけ。ずっと荒らしが居続けるだけ
987デフォルトの名無しさん
2017/11/26(日) 02:48:32.31ID:azT4+Y0L IDを変えられても中身がバカのままみたいなので、
自演できてない事に気がついていなさそう
自演できてない事に気がついていなさそう
988デフォルトの名無しさん
2017/11/26(日) 03:19:31.97ID:m4o0+h3A エディタの話を始めた奴が荒らしか
989デフォルトの名無しさん
2017/11/26(日) 03:56:41.23ID:zBIai8/a >975デフォルトの名無しさん2017/11/25(土) 20:46
>976デフォルトの名無しさん2017/11/25(土) 20:49
>977デフォルトの名無しさん2017/11/25(土) 20:51
ヒントは書き込み時間
>976デフォルトの名無しさん2017/11/25(土) 20:49
>977デフォルトの名無しさん2017/11/25(土) 20:51
ヒントは書き込み時間
990デフォルトの名無しさん
2017/11/26(日) 04:18:29.57ID:azT4+Y0L >>989
IDを変えて自演して荒らそうとする奴がこのスレにいる、
なんて事前情報があるのにこれでバレないと思う方がおかしいよな?
ここまでのレスでもエディタの話を蒸し返そうとしたり、
ばればれの擁護したり、
なんで荒らしは自分から自演してます宣言を出してんだろ
IDを変えて自演して荒らそうとする奴がこのスレにいる、
なんて事前情報があるのにこれでバレないと思う方がおかしいよな?
ここまでのレスでもエディタの話を蒸し返そうとしたり、
ばればれの擁護したり、
なんで荒らしは自分から自演してます宣言を出してんだろ
991デフォルトの名無しさん
2017/11/26(日) 08:52:39.34ID:CTy0yG7t 天安門事件
992デフォルトの名無しさん
2017/11/26(日) 11:31:23.61ID:bkM9lul2 これで>>795が、馬鹿らしくなってこのスレに来なくなれば
Win-Winだね
Win-Winだね
993デフォルトの名無しさん
2017/11/26(日) 11:39:52.84ID:bkM9lul2994デフォルトの名無しさん
2017/11/26(日) 12:12:08.42ID:zWbQ5HAB995デフォルトの名無しさん
2017/11/26(日) 15:36:32.36ID:azT4+Y0L まだ理解してないのか
ここまでくると本人の頭の責任じゃなくて親の教育の責任だな
ここまでくると本人の頭の責任じゃなくて親の教育の責任だな
996デフォルトの名無しさん
2017/11/26(日) 16:38:26.08ID:fYnoK36B 見えない敵と戦ってエライなぁ
997デフォルトの名無しさん
2017/11/26(日) 18:28:17.96ID:OhY/q4lK ume
998デフォルトの名無しさん
2017/11/26(日) 18:28:39.55ID:OhY/q4lK 梅
999デフォルトの名無しさん
2017/11/26(日) 18:29:33.68ID:OhY/q4lK 埋めるぜハート!
スレ落ちするほどヒート!
スレ落ちするほどヒート!
1000デフォルトの名無しさん
2017/11/26(日) 18:30:26.91ID:OhY/q4lK10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 93日 2時間 31分 16秒
新しいスレッドを立ててください。
life time: 93日 2時間 31分 16秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- 【高市速報】小野田キミ「中国依存はリスク」断交を示唆か [931948549]
- 中国高官と話す外務省局長の表情、やばい [175344491]
- 【んな専🏡】なんG 姫森ルーナ(・o・🍬)総合スレ🏰【ホロライブ▶】
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【悲報】高市早苗周辺「支持層が離れるので今更発言を撤回できない」 [935793931]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
