プログラミング言語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
■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
276デフォルトの名無しさん
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 ああ。このレベルなんですか。このスレは。よく分かりました。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本が戦争に一歩踏み出す危機感」官邸前で抗議デモ 高市総理“台湾有事”発言の撤回求める 中国メディアの姿も ★2 [蚤の市★]
- 【おこめ】ふるさと納税でも「新米が売れない」 米農家の最悪のシナリオは「仮払金返納」 鈴木農水相は「農協」の代弁者か [ぐれ★]
- 「レアアースを精製できる技術は日本が持っている、日本にレアアース来なければ中国は精製できない」 衆議院答弁 [お断り★]
- 【サンモニ】加藤登紀子、高市首相に台湾有事発言の撤回要望「日本を攻撃目標にしていいと言っている」 [鉄チーズ烏★]
- 【NHK】タモリ「滋賀県の人に『滋賀県よりも琵琶湖の方が広いよね』って言ったら…」 [少考さん★]
- 《間もなく「紙の保険証」が期限切れ》それでもマイナ保険証は「作らなくて問題ない」は本当か【有識者が解説】 [♪♪♪★]
- 【動画】鈴木農水大臣「間違いなく海外で作った米より日本のお米の方がお寿司やおにぎりは圧倒的に美味しいんですよ☺」 [931948549]
- 風真🥷言ったよね…❓🍃🏡
- 【朗報】ドイツ、なぜか中国を挑発し続ける… メルツ政権発足後、外務大臣が暴走 日本との関係強化を図る [452836546]
- 【悲報】X「アマゾン配達員の劣化が激しい…」何が悪いんだこれ [394133584]
- 格闘技好きなVチューバーがいない理由
- 高市さんが急に劣勢になった理由 [784715804]
