プログラミング言語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
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が呼ばれるだけだな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で [お断り★]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★2 [お断り★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★3 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★3
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★4
- エッヂ落ちた?
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★5
- 【緊急】水ダウひ避難所
- 【ネトウヨの理想国家】中国、スペイ防止法発動、中国人民に対して日本人の通報を奨励 [419054184]
