X



Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/04/17(火) 17:46:57.87ID:GYuBFjQi
プログラミング言語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/
0420デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:45:36.53ID:Q1eQHcZd
スマフォは端末20億ぐらいが今の所上限、人口から計算するとそうなる。
IOTになると300億ぐらいになると言われている。
だから市場としては組み込みのほうが遥かにデカイんだ。
0421デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:48:41.96ID:R3kyCjkl
もしかして来てるのは運用情報板からか?
0422デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:53:39.13ID:H6KFndt4
>>420
補助金の申請書に書くには良い説明だね
現実にはそれは詭弁で、何百億もばら撒かれるような大量生産するデバイスに、
ラピッドプロトタイピングを売りにしてるmrubyなんか使われる訳がないんだよね
一方プロトタイピングでコストを気にしないならラズパイ的なLinuxボードでフルのRuby動かせばいいわけで、完全に論理的に破綻してる
0423デフォルトの名無しさん
垢版 |
2018/07/21(土) 23:58:26.26ID:R3kyCjkl
ああ、商業的にmrubyを組み込み市場にって事か
ホビー的なものやプログラム教材的なものも含めればそれなりに大きいし
0424デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:09:52.37ID:k8KbWpzZ
IoTで夢はひろがりんぐ
でも現実はJavaScriptとPythonに
シェアをゴリゴリ取られてる
0425デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:14:01.72ID:csMVOBEm
Ruby本体のパーサってツール使って書かれてるの?
それとも手作業?

ずいぶん前に何かツールつかって書かれてる、みたいな記事を見た記憶があるんだけど
あやふやで思い出せない
0427デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:39:36.44ID:8Nb060qV
あんなに嘘を書き込んでたネガキャン厨が出てこなくなった
何故だ?
0428デフォルトの名無しさん
垢版 |
2018/07/22(日) 00:41:39.08ID:8Nb060qV
あ、425の質問か
俺は知らない
0430デフォルトの名無しさん
垢版 |
2018/07/22(日) 01:01:34.78ID:ZYdHEl+H
カーネル(?)オブジェクトと一緒にリンクしてローダからジャンプして起動される様な組み込み。それこそファイルシステムも無いようなものもターゲット。
0433デフォルトの名無しさん
垢版 |
2018/07/22(日) 13:32:44.36ID:LiIRy0eu
rubyは始まる前に終わってしまった
0435デフォルトの名無しさん
垢版 |
2018/07/22(日) 16:27:40.65ID:8Nb060qV
質問を普通に読むと、
パーサジェネレータに食わせるソースを人手で書いてるのかツールで出力してるのか、
聞いているんだと思うんだが

例の荒らしは日本語が不自由なの?
0436デフォルトの名無しさん
垢版 |
2018/07/22(日) 17:19:25.94ID:bmpyz9fo
>>435
元の質問ってこれだよね
>>>>425
>> Ruby本体のパーサってツール使って書かれてるの?
>> それとも手作業?

普通に読むと、パーサのコードがジェネレータで自動生成されているのか、
あるいは手書きでゴリゴリとパーサをC言語で書いているのか?という内容で、
>>429>>432が適切なレスを返している(>>431は知ったかぶりのお馬鹿さん)

で、それに対して日本語が不自由と噛み付く>>435の日本語読解力に対して小一時間

ちなみに、Rubyの構文解析(パーズ)に関しては、
以下の文書、いわゆる RHG - Ruby Hacking Guide で詳しく解説されてる
・Rubyソースコード完全解説
 http://i.loveruby.net/ja/rhg/book/
0437デフォルトの名無しさん
垢版 |
2018/07/22(日) 17:43:50.81ID:o4y3Fl/D
>>431の本は読んだことないけど、いくらRubyistが書いた本とはいえそんな低レベルな間違いをするとは思えないから実際の記述が気になるな
独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
字句解析器は手書きでも比較的簡単に作れるので、パーサは自動生成で字句解析は手書きというのはよくあるよね
0438デフォルトの名無しさん
垢版 |
2018/07/22(日) 18:27:03.98ID:NHUbC5Q3
標準ライブラリのRipper クラスで、字句・構文解析ができる。
文法規則から、Bisonでパーサを作る

文法規則(parse.y) → Bison → パーサ(parse.c)

「Rubyのしくみ」に書いてある
0439デフォルトの名無しさん
垢版 |
2018/07/22(日) 18:30:21.91ID:mu5XaGiF
Rubyの文法は、改行が文のセパレータだったりなかったりするので、yaccでは書きにくそうな気も。
0440デフォルトの名無しさん
垢版 |
2018/07/22(日) 21:20:30.98ID:bmpyz9fo
>>437
>独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか

Rubyの字句解析器は(次で詳しく書くけど)手書きだから、「独自に作った」には該当しないね

で、>>431の書籍は手元にあるから「独自に作った」部分を推測すると、p68 第3章の
囲み記事にある「YARV命令を間近に見てみる」の内容ではないかと思われる
この記事によると、Rubyの仮想マシン YARV の命令セットはC言語で実装されているが、
実際には insns.def という命令セット記述向け外部DSL(ドメイン特化言語)で書かれており、
Rubyで書かれた独自ツールを用いてC言語ソースが自動生成される、とある


>字句解析器は手書きでも比較的簡単に作れるので、
>パーサは自動生成で字句解析は手書きというのはよくあるよね

うん、よくある
ただし、Rubyに関しては字句(トークン)の意味が文脈によって異なるので、
字句解析器を汎用的なツール(Flex, Lex)で自動生成するのは原理的に無理
だからRubyでは字句解析器をC言語で(=手書きで)ゴリゴリ書いてる
0441デフォルトの名無しさん
垢版 |
2018/07/22(日) 21:35:50.53ID:8Bgo+1zG
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  字句解析器はわしが独自に作った
    |  `ニニ' /
   ノ `ー―i´
0442デフォルトの名無しさん
垢版 |
2018/07/23(月) 02:58:02.91ID:4FKdTwd5
parse.yって結構な量になるだろ
まじで手書きなの?
0443デフォルトの名無しさん
垢版 |
2018/07/23(月) 03:30:44.45ID:+9p86R5q
flexはライセンスの問題があるのに対して、bisonは解決してるので、字句解析だけ手書きという場合もありそう。
0444デフォルトの名無しさん
垢版 |
2018/07/24(火) 01:24:57.08ID:USIMmUbR
やっぱり理解してないな
0445デフォルトの名無しさん
垢版 |
2018/07/24(火) 11:09:18.60ID:5ghygOWP
def hoge(ary)
  if ary.length > 10

  略
end

def hoge(ary)
  return ary.pop if ary.length > 10
  略
end
0446デフォルトの名無しさん
垢版 |
2018/07/24(火) 11:14:14.74ID:5ghygOWP
途中で投稿しちゃったすまん

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
0448デフォルトの名無しさん
垢版 |
2018/07/24(火) 12:11:36.42ID:pu7GMHRK
却ってもなにも普通に読みづらい
やる事がpopとreturnの2つあるんだから素直に別々に書け
0451デフォルトの名無しさん
垢版 |
2018/07/26(木) 23:53:19.41ID:a+YNJ8TA
ワンライナーで横着して書くのはすごい便利だぞ
0453デフォルトの名無しさん
垢版 |
2018/07/29(日) 03:07:55.01ID:F6Tmnrz5
普通、ワンライナー書いて通ったら、
早めにリファクタリングするだろ

そんな後々まで残しておかないよ
0455デフォルトの名無しさん
垢版 |
2018/07/29(日) 10:54:49.57ID:lzRBxehA
どうでもいいだろ
どうせRubyなんか後でメンテできないんだから、後でばっさり捨てても惜しくないくらいの簡易な実装を心掛けたほうがいい
0456デフォルトの名無しさん
垢版 |
2018/07/30(月) 15:23:19.49ID:i4fPEMEN
一昔前の Web プログラミング言語のトレンドは動的型付け一辺倒でしたが、
その時代も終わり、静的な型宣言を再評価するフェーズが来ているように思います。
この背景には、おそらく Web プログラミングの規模が年々肥大化しており、
動的検査のコストが増してきたのが理由にあるでしょう。
0457デフォルトの名無しさん
垢版 |
2018/07/30(月) 17:43:04.50ID:sQTL1Bwj
JSONに型情報含められたらな
0459デフォルトの名無しさん
垢版 |
2018/07/30(月) 22:30:45.90ID:vVxxmyMz
まーたネガキャンしとんのか
ほんと懲りないな荒らしは
0460デフォルトの名無しさん
垢版 |
2018/07/31(火) 00:20:31.75ID:2+1mdxB2
ステマ荒らし VS ネガキャン荒らし

ネガキャンじゃないやつは
ステマ荒らしだよw
0461デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:56:12.03ID:CsKbzYRR
ステマ荒らしとか、粘着はどういうアタマしとんねん
0462デフォルトの名無しさん
垢版 |
2018/07/31(火) 05:58:46.14ID:A5W680W/
>>461
0463デフォルトの名無しさん
垢版 |
2018/07/31(火) 06:33:34.00ID:M5dn2TAr
だから大規模開発は、Haxe

ソースコードをそのまま送って、10言語に変換できる
0464デフォルトの名無しさん
垢版 |
2018/07/31(火) 06:37:15.77ID:2+1mdxB2
>>463
変換できたってライブラリを使った時点で破綻するんだから意味ない
jQueryを使ったコードをC++に変換したって動くわけない
0465デフォルトの名無しさん
垢版 |
2018/07/31(火) 07:27:58.69ID:CsKbzYRR
ス テ マ 荒 ら し

↑の粘着のセンスって最悪やな
0467デフォルトの名無しさん
垢版 |
2018/07/31(火) 08:19:37.62ID:JoTrRiyA
荒らし「ステマ荒らしVSネガキャン荒らし(ドヤッ)」


凄い語録が誕生したな
0468デフォルトの名無しさん
垢版 |
2018/07/31(火) 09:08:38.32ID:kmul1JEG
粘着さんは自演でネガキャンしないと発作が起きちゃうから、
みんな優しくしてあげて
けっして「ステマ荒らし(ドヤッ)さん」なんて呼んではだめですよ

話は変わるけど、
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドってどんくらいあるの?
0471デフォルトの名無しさん
垢版 |
2018/07/31(火) 11:15:46.71ID:kmul1JEG
self省略って便利なのは便利なんだよな
いちいちselfって書かなくて良いから
0472デフォルトの名無しさん
垢版 |
2018/07/31(火) 11:53:47.74ID:xRXvz4C9
@と勘違いしてないか
0473デフォルトの名無しさん
垢版 |
2018/07/31(火) 12:07:44.84ID:3hAWRCkR
自分は静的型の恩恵を受けてRubyを開発しているのに
その言語のユーザーにはそれを与えない、まさに鬼畜の所業
それだけに留まらず、動的型の方が優れていると嘘を教え込み
人の人生観や世界観を台無しにして囲い込み
骨までシャブりつくす姿勢は流石の宗教家
「Rubyをキメると気持ちいい!」
0474デフォルトの名無しさん
垢版 |
2018/07/31(火) 12:10:34.26ID:kmul1JEG
質問の間に色々レスがついたからもう一度書くわ

ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドって何があるの?
スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど
0475デフォルトの名無しさん
垢版 |
2018/07/31(火) 12:22:51.02ID:H1jTAdrX
意味がわからない文章だが、コンテキストが入れ替わってることを言いたいのかな
そんなメソッドは作っただけ存在するけど
0479デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:12:42.46ID:zoworXJJ
>>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 が割り当てられる


>スレの上の方になんか関係しそうなコードが書いてあったから疑問に思ったんだけど

アンカって知ってる?
0481デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:22:06.05ID:i+0VO+yy
.map{}やらの中のselfの事だろ
なんかこの粘着、時々日本語の読解がおかしくなるよな
0484デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:34:24.76ID:zoworXJJ
>>481
>.map{}やらの中のselfの事だろ

具達的なコードで示すか、過去レスのアンカをカキコしる
0485デフォルトの名無しさん
垢版 |
2018/07/31(火) 13:36:32.60ID:Sn2VrW8x
@と勘違いしてるっぽい
0488デフォルトの名無しさん
垢版 |
2018/07/31(火) 19:21:07.27ID:M5dn2TAr
JavaScript, TypeScript では、this が文脈で変わるので、ややこしい!

それを避けるため、jQuery, Haxe では変わらないようにしている
0489デフォルトの名無しさん
垢版 |
2018/07/31(火) 19:49:00.54ID:0cuGom8L
以降もずっと自演が続きます
0490デフォルトの名無しさん
垢版 |
2018/07/31(火) 23:54:26.33ID:wYvVLkW6
>483デフォルトの名無しさん2018/07/31(火) 13:32:54.45ID:0cuGom8L
>やっぱり荒らしてるのは星持ちか


このレスがついてから急にレスが付きづらくなったね
0491デフォルトの名無しさん
垢版 |
2018/07/31(火) 23:58:45.81ID:PrQlt9wc
図星
0492デフォルトの名無しさん
垢版 |
2018/08/01(水) 01:48:47.30ID:i67K/6im
RustってちょっとRuby臭がするんだけど、近づいてみるとC++の時に嗅いだ嫌な臭いがして頭がクラクラする
0493デフォルトの名無しさん
垢版 |
2018/08/01(水) 02:22:55.90ID:09aZWOww
ブロック付きメソッドで与えられたブロックを、
メソッド内でしかも別のコンテキスト下で処理したいんだけど方法ってある?
0495デフォルトの名無しさん
垢版 |
2018/08/01(水) 03:04:07.48ID:09aZWOww
誰か踏んでみて
0499デフォルトの名無しさん
垢版 |
2018/08/01(水) 12:21:49.98ID:FFxaCJen
今からRuby勉強してルビィスト名乗ってドヤ顔できる?
アンタらのように下々どもの言語ディスる能力ほしいんだけど
0502デフォルトの名無しさん
垢版 |
2018/08/01(水) 13:36:49.31ID:FFxaCJen
単純により給料がいい言語に移ってるだけでRuby開発はどこもやりたいんだよね?
企業が欲しい言語エンジニアとエンジニアがやりたい言語に違いがあるだけじゃない?
0504デフォルトの名無しさん
垢版 |
2018/08/01(水) 18:58:35.84ID:09aZWOww
またステマ荒らし(ドヤッ)さんがネガキャンしてる
0505デフォルトの名無しさん
垢版 |
2018/08/01(水) 19:09:54.49ID:hJYNlAh1
>>504
荒らし荒らしいってるお前も荒らしだろ
今見たら俺のレスがステマ荒らし(?)認定されてて笑ったわ
大して荒れてない時でも荒らし荒らしうるせえんだわ
0507デフォルトの名無しさん
垢版 |
2018/08/01(水) 19:17:59.50ID:33KC14nX
ステマ荒らし(ドヤッ)さん「RubyスレでRubyをステマするのはずるいブヒー。これじゃネガキャン出来ないブヒー」

ステマ荒らし(ドヤッ)さん「悔しいブヒー。ステマは荒らしブヒー」ブヒブヒ
0508デフォルトの名無しさん
垢版 |
2018/08/01(水) 19:23:32.66ID:i67K/6im
rubyはとりあえず作ってみるという作業に向いていて、それで良いものをたくさん生み出したが、
それらは結局他の言語へ移植されていって、rubyでなくてもいい状況になってしまった
ruby3に向けて速くしようと頑張ってるが、それでもたかが知れてるので、
新しい洗練された標準ライブラリを作ることも必要だと思う
0509デフォルトの名無しさん
垢版 |
2018/08/01(水) 19:25:48.31ID:33KC14nX
というか荒らしは日中から書き込んでるんだな
もしかして無職?
0510 ◆QZaw55cn4c
垢版 |
2018/08/01(水) 19:35:27.18ID:6NCuGzpD
>それらは結局他の言語へ移植されていって
RoR はどこに移植されましたか?
0514デフォルトの名無しさん
垢版 |
2018/08/01(水) 20:24:07.20ID:yeaXvKr1
QZaw55cn4cのトリップって運用情報板で言われてるボランティアとか星もちだろ?

で、何したの?
0516 ◆QZaw55cn4c
垢版 |
2018/08/01(水) 20:41:47.35ID:6NCuGzpD
>>514
星持ちではありません

>>515
5月に固定資産税を払いました
0517デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:00:07.78ID:JsKaYcG1
ああ、やっぱり
IP切り換えて別のスレに書き込む度に>>516が高頻度でついてくる事があったからおかしいと思ってたけど
運営ボランティアの人だったんだ
0518デフォルトの名無しさん
垢版 |
2018/08/01(水) 21:02:06.21ID:Al4aQLEL
運営ボランティアの人を頭がおかしい人のように言わない
失礼だろ。奴隷にも人権はある。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況