プログラミング言語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
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使え。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 「韓国人の高市早苗評」、限界突破。 [592058334]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- >>3と>>5のワードを使ってai生成する
- ガバガバなんだよ
