Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 62
https://mevius.5ch.net/test/read.cgi/tech/1511451329/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/ スマフォは端末20億ぐらいが今の所上限、人口から計算するとそうなる。
IOTになると300億ぐらいになると言われている。
だから市場としては組み込みのほうが遥かにデカイんだ。 >>420
補助金の申請書に書くには良い説明だね
現実にはそれは詭弁で、何百億もばら撒かれるような大量生産するデバイスに、
ラピッドプロトタイピングを売りにしてるmrubyなんか使われる訳がないんだよね
一方プロトタイピングでコストを気にしないならラズパイ的なLinuxボードでフルのRuby動かせばいいわけで、完全に論理的に破綻してる ああ、商業的にmrubyを組み込み市場にって事か
ホビー的なものやプログラム教材的なものも含めればそれなりに大きいし IoTで夢はひろがりんぐ
でも現実はJavaScriptとPythonに
シェアをゴリゴリ取られてる Ruby本体のパーサってツール使って書かれてるの?
それとも手作業?
ずいぶん前に何かツールつかって書かれてる、みたいな記事を見た記憶があるんだけど
あやふやで思い出せない >>419
いや組み込み用っていうかそういう組み込みじゃない
linux動くなら普通のruby使えばいいし あんなに嘘を書き込んでたネガキャン厨が出てこなくなった
何故だ? bison と言うツール(と言うことが聞きたい?) カーネル(?)オブジェクトと一緒にリンクしてローダからジャンプして起動される様な組み込み。それこそファイルシステムも無いようなものもターゲット。 >>425
この本に書かれていたような気がする。
https://www.ohmsha.co.jp/book/9784274050657/
確かツールでは上手くできなくて、独自のものを使っているだったような。 質問を普通に読むと、
パーサジェネレータに食わせるソースを人手で書いてるのかツールで出力してるのか、
聞いているんだと思うんだが
例の荒らしは日本語が不自由なの? >>435
元の質問ってこれだよね
>>>>425
>> Ruby本体のパーサってツール使って書かれてるの?
>> それとも手作業?
普通に読むと、パーサのコードがジェネレータで自動生成されているのか、
あるいは手書きでゴリゴリとパーサをC言語で書いているのか?という内容で、
>>429と>>432が適切なレスを返している(>>431は知ったかぶりのお馬鹿さん)
で、それに対して日本語が不自由と噛み付く>>435の日本語読解力に対して小一時間
ちなみに、Rubyの構文解析(パーズ)に関しては、
以下の文書、いわゆる RHG - Ruby Hacking Guide で詳しく解説されてる
・Rubyソースコード完全解説
http://i.loveruby.net/ja/rhg/book/ >>431の本は読んだことないけど、いくらRubyistが書いた本とはいえそんな低レベルな間違いをするとは思えないから実際の記述が気になるな
独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
字句解析器は手書きでも比較的簡単に作れるので、パーサは自動生成で字句解析は手書きというのはよくあるよね 標準ライブラリのRipper クラスで、字句・構文解析ができる。
文法規則から、Bisonでパーサを作る
文法規則(parse.y) → Bison → パーサ(parse.c)
「Rubyのしくみ」に書いてある Rubyの文法は、改行が文のセパレータだったりなかったりするので、yaccでは書きにくそうな気も。 >>437
>独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
Rubyの字句解析器は(次で詳しく書くけど)手書きだから、「独自に作った」には該当しないね
で、>>431の書籍は手元にあるから「独自に作った」部分を推測すると、p68 第3章の
囲み記事にある「YARV命令を間近に見てみる」の内容ではないかと思われる
この記事によると、Rubyの仮想マシン YARV の命令セットはC言語で実装されているが、
実際には insns.def という命令セット記述向け外部DSL(ドメイン特化言語)で書かれており、
Rubyで書かれた独自ツールを用いてC言語ソースが自動生成される、とある
>字句解析器は手書きでも比較的簡単に作れるので、
>パーサは自動生成で字句解析は手書きというのはよくあるよね
うん、よくある
ただし、Rubyに関しては字句(トークン)の意味が文脈によって異なるので、
字句解析器を汎用的なツール(Flex, Lex)で自動生成するのは原理的に無理
だからRubyでは字句解析器をC言語で(=手書きで)ゴリゴリ書いてる /__.))ノヽ
.|ミ.l _ ._ i.)
(^'ミ/.´・ .〈・ リ
.しi r、_) | 字句解析器はわしが独自に作った
| `ニニ' /
ノ `ー―i´ parse.yって結構な量になるだろ
まじで手書きなの? flexはライセンスの問題があるのに対して、bisonは解決してるので、字句解析だけ手書きという場合もありそう。 def hoge(ary)
if ary.length > 10
略
end
def hoge(ary)
return ary.pop if ary.length > 10
略
end 途中で投稿しちゃったすまん
hoge1を書く時にhoge2みたく1行でぱぱっと書いてしまいたくなるんだけど、あまり良くない書き方かな?
return ary.popの値を別に使うわけじゃないから却って読みにくくなってるかな?
同様にbreak(ary.pop) if 〜 みたいなこともやりたくなる
def hoge1(ary)
if ary.length > 10
ary.pop
return
end
略
end
def hoge2(ary)
return ary.pop if ary.length > 10
略
end かといって (ary.pop; return) if 〜 とは書きたくないんだよね 却ってもなにも普通に読みづらい
やる事がpopとreturnの2つあるんだから素直に別々に書け >>448
サンキュー 横着しないで書くことにするわ 普通、ワンライナー書いて通ったら、
早めにリファクタリングするだろ
そんな後々まで残しておかないよ どうでもいいだろ
どうせRubyなんか後でメンテできないんだから、後でばっさり捨てても惜しくないくらいの簡易な実装を心掛けたほうがいい 一昔前の Web プログラミング言語のトレンドは動的型付け一辺倒でしたが、
その時代も終わり、静的な型宣言を再評価するフェーズが来ているように思います。
この背景には、おそらく Web プログラミングの規模が年々肥大化しており、
動的検査のコストが増してきたのが理由にあるでしょう。 まーたネガキャンしとんのか
ほんと懲りないな荒らしは ステマ荒らし VS ネガキャン荒らし
ネガキャンじゃないやつは
ステマ荒らしだよw だから大規模開発は、Haxe
ソースコードをそのまま送って、10言語に変換できる >>463
変換できたってライブラリを使った時点で破綻するんだから意味ない
jQueryを使ったコードをC++に変換したって動くわけない ス テ マ 荒 ら し
↑の粘着のセンスって最悪やな RubyスレでRubyのステマ荒らし?
こわいわー
いやマジでこわいわー 荒らし「ステマ荒らしVSネガキャン荒らし(ドヤッ)」
凄い語録が誕生したな 粘着さんは自演でネガキャンしないと発作が起きちゃうから、
みんな優しくしてあげて
けっして「ステマ荒らし(ドヤッ)さん」なんて呼んではだめですよ
話は変わるけど、
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドってどんくらいあるの? self省略って便利なのは便利なんだよな
いちいちselfって書かなくて良いから 自分は静的型の恩恵を受けてRubyを開発しているのに
その言語のユーザーにはそれを与えない、まさに鬼畜の所業
それだけに留まらず、動的型の方が優れていると嘘を教え込み
人の人生観や世界観を台無しにして囲い込み
骨までシャブりつくす姿勢は流石の宗教家
「Rubyをキメると気持ちいい!」 質問の間に色々レスがついたからもう一度書くわ
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドって何があるの?
スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど 意味がわからない文章だが、コンテキストが入れ替わってることを言いたいのかな
そんなメソッドは作っただけ存在するけど ステマ荒らし(ドヤッ)さんはネガキャンがほんとうに大好きだな
>>474
mapのやつ? >>477
ステマ荒らし(ドヤッ)さんは帰って
どうぞ >>474
継承を使えば普通だけど、何か別の事柄を期待しているのかな?
irb(main):001:0> class Foo; def foo; puts 'FOO'; end; end
=> :foo
irb(main):002:0> class Bar < Foo; def bar; foo; end; end
=> :bar
irb(main):003:0> Bar.new.bar
FOO
=> nil
2行目、メソッド Bar#bar の定義内で self を省略したメソッド foo が
呼び出されているけど、この時、実際には Bar(= self) ではなく
Foo が割り当てられる
>スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど
アンカって知ってる? .map{}やらの中のselfの事だろ
なんかこの粘着、時々日本語の読解がおかしくなるよな 書いてる本人しかわかってないから、自演が惨めすぎるんだが >>481
>.map{}やらの中のselfの事だろ
具達的なコードで示すか、過去レスのアンカをカキコしる JavaScript, TypeScript では、this が文脈で変わるので、ややこしい!
それを避けるため、jQuery, Haxe では変わらないようにしている >483デフォルトの名無しさん2018/07/31(火) 13:32:54.45ID:0cuGom8L
>やっぱり荒らしてるのは星持ちか
このレスがついてから急にレスが付きづらくなったね RustってちょっとRuby臭がするんだけど、近づいてみるとC++の時に嗅いだ嫌な臭いがして頭がクラクラする ブロック付きメソッドで与えられたブロックを、
メソッド内でしかも別のコンテキスト下で処理したいんだけど方法ってある? 【初心者必見!】Ruby evalを理解し活用するための4つのTips
https://www.sejuku.net/blog/21273
instance_eval, class_eval, module_eval とか? >>493
あるけどevilだしめんどくさいやめとけ 今からRuby勉強してルビィスト名乗ってドヤ顔できる?
アンタらのように下々どもの言語ディスる能力ほしいんだけど もはやAppleにいらない子扱いされてるObjective-Cすら超越した近寄っちゃあかん言語の筆頭
https://pbs.twimg.com/media/Di_fIwmUUAES3Lk.jpg 単純により給料がいい言語に移ってるだけでRuby開発はどこもやりたいんだよね?
企業が欲しい言語エンジニアとエンジニアがやりたい言語に違いがあるだけじゃない? またステマ荒らし(ドヤッ)さんがネガキャンしてる >>504
荒らし荒らしいってるお前も荒らしだろ
今見たら俺のレスがステマ荒らし(?)認定されてて笑ったわ
大して荒れてない時でも荒らし荒らしうるせえんだわ >>504
この人の自演は何かの病気なんじゃないか? ステマ荒らし(ドヤッ)さん「RubyスレでRubyをステマするのはずるいブヒー。これじゃネガキャン出来ないブヒー」
ステマ荒らし(ドヤッ)さん「悔しいブヒー。ステマは荒らしブヒー」ブヒブヒ rubyはとりあえず作ってみるという作業に向いていて、それで良いものをたくさん生み出したが、
それらは結局他の言語へ移植されていって、rubyでなくてもいい状況になってしまった
ruby3に向けて速くしようと頑張ってるが、それでもたかが知れてるので、
新しい洗練された標準ライブラリを作ることも必要だと思う というか荒らしは日中から書き込んでるんだな
もしかして無職? >それらは結局他の言語へ移植されていって
RoR はどこに移植されましたか? >>510
それが残って存在意義になってるのが現状だね QZaw55cn4cのトリップって運用情報板で言われてるボランティアとか星もちだろ?
で、何したの? >>514
星持ちではありません
>>515
5月に固定資産税を払いました ああ、やっぱり
IP切り換えて別のスレに書き込む度に>>516が高頻度でついてくる事があったからおかしいと思ってたけど
運営ボランティアの人だったんだ 運営ボランティアの人を頭がおかしい人のように言わない
失礼だろ。奴隷にも人権はある。 ■ このスレッドは過去ログ倉庫に格納されています