[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/23 09:39 / Filesize : 287 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 62



1 名前:デフォルトの名無しさん mailto:sage [2017/11/24(金) 00:35:29.31 ID:rLZHdQ3Q.net]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 61
https://mevius.5ch.net/test/read.cgi/tech/1503644351/

るりまサーチ (リファレンス検索)
rurema.clear-code.com/

Rubyist Magazine - るびま
jp.rubyist.net/magazine/

逆引きRuby
www.namaraii.com/rubytips/

558 名前:540 mailto:sage [2017/12/24(日) 10:48:40.19 ID:24EH1p52.net]
圧縮された書庫だから、7-Zip Archives から、Ruby 2.4(x64)をダウンロードしたけど、
これはインストーラーとは違うものなのか?
rubyinstaller-2.4.3-1-x64.7z というファイル名だったけど

7-Zip Archives の上にある、RubyInstallers から、Ruby 2.4(x64)をダウンロードしてみるわ

559 名前:540 mailto:sage [2017/12/24(日) 11:01:29.86 ID:24EH1p52.net]
PowerShell で、7-Zip Archives 中の、\bin\ridk.ps1 version を実行してみた

PS C:\Ruby24-x64\bin> .\ridk.ps1 version
---
ruby:
path: C:/Ruby24-x64
version: 2.4.3
platform: x64-mingw32
ruby_installer:
package_version: 2.4.3-1
git_commit: 36aac73
os: Microsoft Windows [Version 10.0.16299.125]

やっぱり、これも、RubyInstaller なのかな?
よくわからない

560 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:02:00.42 ID:A3ERayLu.net]
Rubyにパイプラインオペレータってないの?

JavaScriptだと

exclaim(capitalize(doubleSay("hello")));
というカッコの入れ子が

"hello" |> doubleSay |> capitalize |> exclaim;

とシェルスクリプトのパイプのように
流れるような形で記述できるようになるらしいんだけど

561 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:05:46.33 ID:mMj7aGtc.net]
>>545
そんなのがあると誰もオブジェクト指向しなくなるからRubyの思想には合わないだろ
素直にメソッドチェインでやるか、さっさと関数型言語に乗り換えるべき

562 名前:540 mailto:sage [2017/12/24(日) 11:08:13.75 ID:24EH1p52.net]
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
ひょっとして、CUI 版のインストーラーなのかな?
(rubyinstaller-2.4.3-1-x64.7z というファイル名だった)

7-Zip Archives 中の、\bin\ridk.ps1 に引数を付けて、
インストールするのかも知れない

よくわからないけど。
インストーラーじゃないかも知れないし

563 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:08:41.37 ID:2eVeUlKQ.net]
>>544
>>542

>>545
こんな gem がある
yuroyoro.github.io/lambda_driver/

564 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 11:14:59.06 ID:24EH1p52.net]
>>545-546
まさに、Elixir

Matz も、Streem という新言語を考案して、日経Linux に連載していた。
GitHub にあるらしい

565 名前:540 mailto:sage [2017/12/24(日) 11:29:56.75 ID:24EH1p52.net]
7-Zip Archives から、Ruby 2.4(x64)をダウンロードすると、
rubyinstaller-2.4.3-1-x64.7z というファイル名だった。
これを、7-Zip で解凍すると、56MB になった

56MB もあるし、\bin の中には、ruby.exe, rubyw.exe もある。
実行環境が揃っているような気もする

実はポータブル版で、環境変数PATH を通せば、実行できるのかも知れない

よくわからないけど、何か捨てがたいw

566 名前:540 mailto:sage [2017/12/24(日) 11:37:26.57 ID:24EH1p52.net]
PowerShell で、7-Zip Archives 中の、\bin\ruby.exe -v を実行してみた

PS C:\Ruby24-x64\bin> .\ruby.exe -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

やっぱり、7-Zip Archives の中にあるやつは、ポータブル版じゃないのか?
ひょっとして、実行もできるかも?



567 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 12:51:21.82 ID:W/aeQ+z1.net]
実行できて当たり前なのに何を言っているのか
インストーラーはパスを通したりするだけだぞ

568 名前:540 mailto:sage [2017/12/24(日) 13:37:01.71 ID:24EH1p52.net]
7-Zip Archives からダウンロードした、Ruby 2.4(x64)は、
環境変数PATH が通っていないだけで、実行できるの?

ここに、実行環境が一式が揃っているの?
つまり、どこにでも移動できるポータブル版?

569 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:55:33.60 ID:A3ERayLu.net]
>>548
期待したけど、やっぱりRubyの文法からは抜け出せないか
DSLが得意と言っても所詮Rubyの言語であることに変わりはないしな

570 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 13:58:58.91 ID:A3ERayLu.net]
>>546
まあ頭が固いw

a + b はオブジェクト指向じゃないっていうんですか?
a.add(b) ってしなきゃいけないですね

571 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:12:36.12 ID:BNj/0IJ2.net]
>>555
Rubyに文句を言う前にまずはRubyの仕様くらいちゃんと理解しよう
+は全く特別なところのないごく普通のインスタンスメソッド呼び出しだぞ
関数型でaddにパイプライン使うとしたら
b |> add(a) # add(a, b)に相当
こうなるわけだが、理解してるか?

572 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:15:02.58 ID:A3ERayLu.net]
>>556
まあ君はJavaScriptの仕様を知らなくて当然だろうけどね

|> オペレータっていうのは、引数を一つの関数呼び出しの
シンタックスシュガーに過ぎない
だから関数呼び出しを行ってるのと一緒

関数呼び出しをするとオブジェクト指向にならないのか?
そんなわけあるかw

573 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:29:26.20 ID:BNj/0IJ2.net]
>>557
ある機能が言語に追加されることでコーディングのスタイルが大きく変わってしまうことはよくある。
まあそういう経験則的な話は君には通じなそうだから、もっと具体的にRubyとの相性の悪さを説明してあげよう。
まず、関数型言語やJavaScriptでは裸の関数名は第一級関数(関数オブジェクト)だが、Rubyではメソッド呼び出しになってしまう。
だから>>548のようにシンボルを使った汚いハックをするか、|>の後にくる識別子は第一級関数として扱うという特別ルールを設けることになる。
特別ルールを設けたとしても、>>556のaddの例みたいな使い方には対応できない。
君は関数型言語を知らないみたいだから説明しとくと、add(a)はadd関数の第一引数にaを部分適用(カリー化)した引数一個の関数を返す。
|>の直後には必ず関数名が来るというルールだと、これは実現できないのはわかるよね。

574 名前:558 mailto:sage [2017/12/24(日) 14:33:34.04 ID:BNj/0IJ2.net]
それと、Rubyの関数は殆どがインスタンスメソッドであるというのも忘れてはいけない。
x |> y.hoge
これは y.hoge(x) と解釈すべきだろうか?
それともy.hoge()(x)かな?
今のRubyの仕様からすると後者が自然だと思わない?

575 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 14:46:41.85 ID:bBhW4Y9m.net]
ようお前ら。
Ruby 2.5が来るのは明日だぞ。
gem作ってる奴はちゃんと準備出来てるか?
Ruby2.5にした途端に泣きを見ることのないようにしとけよ。

576 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:29:04.65 ID:A3ERayLu.net]
>>558
あ、なるほどw シンタックスシュガーって言ってるのに、
あんたは関数型の仕様に変更すると思い込んでるわけかw

俺、Rubyを関数型にしろなんて一言も言ってないよ?
JavaScriptが関数型になったなんて一言も言ってないよ?

ただ、関数呼び出しのネストは見づらいから、一つの引数を取る関数の呼び出しを
|> でつなげた "書き方" ができると良いねって話しかしてないんだよ

> 今のRubyの仕様からすると後者が自然だと思わない?
理由が書いてないから判断不可能だね

>>556
> 関数型でaddにパイプライン使うとしたら
> b |> add(a) # add(a, b)に相当
> こうなるわけだが、理解してるか?

ぷぷw |> という記号を使っだけで、関数型になるべきだなんて
思い込んでるからそういう結論になる。馬鹿だねぇ

JavaScriptの関数型でない単なるパイプラインオペレータは引数が1つの
関数を受け取ることしかできない。 カリー化?そんなものはしない。
関数型のパイプラインオペレータを導入なんて話はしてないんだから当然の結論

引数が複数の関数を使いたければ、アロー関数でそうなるように書くだけの話

https://github.com/tc39/proposal-pipeline-operator
let newScore = person.score |> double |> (_ => add(7, _)) # アンダースコアは只の変数、iでもaでも良い

papp proposalのpappメソッドを使うとこう書くこともできるようだけど
let newScore = person.score |> double |> add.papp(7)



577 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:52:11.56 ID:2eVeUlKQ.net]
>>554
Ruby使うんだから当たり前の話でそ?
Rubyじゃないスタイルでどうしても書きたいならすでにRubyを使う必要はないと思うんだけど

578 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 15:54:48.61 ID:/VeWYwOF.net]
Juliaおぬぬめ

579 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 16:00:56.08 ID:2eVeUlKQ.net]
Juliaいいね。これから大注目の言語だよ
ただ、現状は起動が激重なのでJuliacとかが公式採用されないとつらいかも
そういう意味ではJavaに似てるのかも(言語仕様という意味ではなく)

580 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 16:12:39.10 ID:BNj/0IJ2.net]
Juliaはクソ重い計算やデータの処理を長時間ぶっ通しで動かすための言語だよ
Rubyと比べるようなもんではないし、起動時間が問題になるようなものに使うのも間違い

581 名前:デフォルトの名無しさん [2017/12/24(日) 20:04:37.70 ID:4g6ysjQ5.net]
>>545
>流れるような形で記述できるようになるらしいんだけど

できるようになるといふのは、以下の提案かな?
・ESNext Proposal: The Pipeline Operator
 https://github.com/tc39/proposal-pipeline-operator

調べてみると、これはあくまで提案(proposal)であって、
5段階あるECMAScript(= JavaScript)仕様策定過程の2番目に過ぎない
 0. Strawman
 1. Proposal <― パイプライン演算子の状態
 2. Draft
 3. Candidate
 4. Finished
当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
言い換えると、「こんなのできたらいいなあ」といふ話だよね?

582 名前:デフォルトの名無しさん [2017/12/24(日) 20:35:54.14 ID:4g6ysjQ5.net]
>>561
>関数型のパイプラインオペレータを導入なんて話はしてないんだから当然の結論

え、こう書けないっていうの?
  let newScore = person.score |> double |> add(7)
もし pipeline proposal が Finished(採用決定)になったとしても、このコードを
  let newScore = person.score |> double |> (_ => add(7, _))
こうも冗長に書かなけりゃならないなんて、ダサイというか中途半端な提案だと思う

>>554の言

583 名前:tを借りると:
  期待したけど、やっぱりJavaScriptの文法からは抜け出せないか
  新しい提案と言っても所詮JavaScriptの言語であることに変わりはないしな
っていう感想です

しかも更にpapp proposal(部分適用サポートの提案)がFinishedになったと仮定してもなお
  let newScore = person.score |> double |> add.papp(7)
こうなっちゃうなんて、もう少し練り直してから提案した方がいいと思うんだけどなぁ
[]
[ここ壊れてます]

584 名前:540 mailto:sage [2017/12/24(日) 22:02:54.10 ID:24EH1p52.net]
JS は、Ruby, Elixir の影響が強い。
Kotlin も、Groovy, Ruby の影響が強い

誰か、
>>540
の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)をどうすれば

585 名前:よいのか、教えてほしい []
[ここ壊れてます]

586 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 22:25:11.95 ID:ZqTzsWSR.net]
>>568
パスを通せ



587 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:05:16.75 ID:A3ERayLu.net]
>>567
> え、こう書けないっていうの?

少しは頭を働かせようよw

そこにある、add(7) が引数を一つ取る関数を返すなら書けるよ
それを汎用化したのがpapp。それにJavaScriptでカリー化する方法だってある

JavaScriptは関数型言語じゃないんだから、関数型言語の方からみて
ダサいとか言うなよw お前、関数型に洗脳されてるだろw

関数型を取り入れたなんて話はしてない。お前が言い出しただけ。
単にパイプラインオペレータという関数のネストを見やすくする機能を
追加するってだけの話

588 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:07:29.50 ID:2eVeUlKQ.net]
>>570
Rubyについてはこんな書き方しかできないのかと毒づいておいて、JavaScripitについては全力擁護
これをRubyスレでやらかしてたら荒らし認定を食らってもしょうがないレベルだぞ

589 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:12:18.94 ID:A3ERayLu.net]
>>566
> 当然、現時点でその実装は存在しておらず「絵に描いた餅」に過ぎない
知らないなら、知ったかぶりして語らないでよw

JavaScriptは5段階あるECMAScript(= JavaScript)仕様策定過程を
必ず0から一つづつ上げて行かないといけない
だからどんな仕様だって最初は0から始まる

こういう提案から仕様化されるまでのプロセスが明確になってるのは素晴らしいことだよ

で、Stage 1だが

https://azu.github.io/slide-what-is-ecmascript/slide/12.html
・プロポーザルの目的や解決方法を示す
・Polyfillやデモ等を用いて解説する

どういうことかというとPolyfillやデモ等があるってことだ。
わかりやすく言うと、すでに使う方法があるってことだ。それがこれ
https://www.npmjs.com/package/babel-plugin-transform-pipeline

なので絵に描いた餅ではない。絵に描いた餅はStage 0
その0を脱却して、すでに使う方法が出来たということ

590 名前:540 mailto:sage [2017/12/24(日) 23:16:34.36 ID:24EH1p52.net]
7-Zip Archives の所からダウンロードした、Ruby 2.4(x64)を解凍し、
C:\Ruby24-x64 に改名して、

Windows10 で、ユーザー環境変数に、C:\Ruby24-x64\bin を追加したら、
PowerShell で、ruby コマンドが使えるようになった

PS C:\Users\Owner\Documents\Ruby> ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

C:\Ruby24-x64\bin には、erb, gem, irb, rake, ruby.exe, rubyw.exe
などのコマンドがあるから、
7-Zip Archives の所にあるものも、Rubyのポータブル版の実行環境なのかも

591 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:17:27.23 ID:2eVeUlKQ.net]
>>572
でさ、結局何が言いたいの?
JavaScriptサイコーってのが言いたいのなら完全にスレ違いだよ

592 名前:540 mailto:sage [2017/12/24(日) 23:23:27.95 ID:24EH1p52.net]
ちなみに、rubyinstaller の 7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)は9MB で、解凍すると56MB になった

1/6 に圧縮されている

593 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 23:37:20.25 ID:A3ERayLu.net]
>>574
> でさ、結局何が言いたいの?
Rubyもサイコーになろうぜ

594 名前:デフォルトの名無しさん [2017/12/25(月) 00:01:06.18 ID:h6gXOlbY.net]
>>570
>関数型を取り入れたなんて話はしてない。お前が言い出しただけ。

>>556 とは別人だけど、IDを確認できないほど冷静さを失っているのかな?

また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、
それを自分(ID:A3ERayLu )から言いだしたという認識ができていないのかね?


>単にパイプラインオペレータという関数のネストを見やすくする機能を追加するってだけの話

だよね、関数型のパイプライン演算子と同じ名前だけど中身は微妙に異なるJavaScript固有の方言が
一つ提案されたという、ただそれだけの話
しかも最終的に採用されるか否かも確定すらしていない Proposal 段階でしかないといふ

595 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 00:21:34.94 ID:mSK8fdnz.net]
> また、そもそも>>545の exclaim, capitalize, doubleSay という関数単位で部品化して
> パイプライン演算子で組み立てるという発想そのものが関数型プログラミングであり、

関数呼び出しの形を変えただけ、
関数型プログラミングとは全く関係ない

596 名前:デフォルトの名無しさん [2017/12/25(月) 00:25:59.73 ID:h6gXOlbY.net]
>>576
関数型言語のパイプライン演算子がサイコーという話なら同意するし、
それがオブジェクト志向言語であるRubyにとって今すぐ必要かどうかは別



597 名前:にして、
数ある将来のRuby構想に向けた提案の一つとして理解したい

でも >>561,570で自身(ID:A3ERayLu)が語っているように、
JavaScriptのそれは関数型ではないJavaScript固有の方言なんだろ?
JavaScriptが独自の道に進もうとしてるなら「どうぞお好きになさいませ」だし、
それにRubyも従うべきという話に至っては「何を考えてるの?」としか言えないね


>>570
>単にパイプラインオペレータという関数のネストを見やすくする機能を
>追加するってだけの話

どちらかというと日常的にカッコだらけになるのはPythonだから、
そちらへ提案した方がいいんではないかな
http://mevius.2ch.net/test/read.cgi/tech/1491491123/44-46

関数型プログラミングを公式文書で否定しているPythonだから、
関数型ではないパイプライン演算子の提案はきっと喜ばれるよ
[]
[ここ壊れてます]

598 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 00:38:42.38 ID:W15ZQhn0.net]
いずれにせよ>>559のようにメソッド呼出の括弧省略の問題があるからJavaScriptやCaml系のようなクリーンなシンタックスにはならないけどね
&:symbolとか->みたいなハック感溢れる醜い構文になる

599 名前:デフォルトの名無しさん [2017/12/25(月) 01:02:31.40 ID:h6gXOlbY.net]
>>580
いや、オブジェクト指向言語のRubyなら、現時点でも
簡潔にメソッドチェーンで流れるようなコードが書ける

以下は>>545の例:
 https://ideone.com/aExbWe

refinements に関しては以下の記事が分かりやすかったのでご参考
・Ruby の refinements の使い途 - Qiita
 https://qiita.com/scivola/items/dc49d56c90fd0cb6d4d3

で、何かご不満はございますか?

600 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:03:23.68 ID:mSK8fdnz.net]
>>579
JavaScriptは元から関数型じゃないし
関数型になんかなろうとしてないよw

601 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:05:56.92 ID:mSK8fdnz.net]
>>581
> で、何かご不満はございますか?

はい。

def foo(i); end
def bar(i); end
def baz(i); end

となっているものの baz(bar(foo(1)) という呼び出しを
メソッドチェーンで繋げないということです。

パイプラインオペレータならこの通り
1 |> foo |> bar |> baz

602 名前:デフォルトの名無しさん [2017/12/25(月) 01:53:39.67 ID:h6gXOlbY.net]
>>582
>JavaScriptは元から関数型じゃないし

うーみゅ、やっぱりJavaScriptって誤解されてるのね
・クロージャって何がいいの?
mevius.2ch.net/test/read.cgi/tech/1415419907/224

リンク切れ邦訳版「JavaScriptの勉強:世界で最も誤解されたプログラミング言語」
web.archive.org/web/20130120204931/http://d.hatena.ne.jp/brazil/20050829/1125321936
>  Cの皮を被ったLisp
>
>  JavaScriptには、Cのような中括弧や不格好なforステートメントがあるため、
>  一般的な手続き型言語のように見えますが、それは誤りです。JavaScriptはCやJavaよりも、
>  LispやSchemeのような関数型言語と多くの共通点を持っているのです。JavaScriptには、
>  リストの代わりに配列があり、プロパティリストの代わりにオブジェクトがあります。
>  関数はファーストクラスであり、クロージャも備えています。つまり括弧の対応をとる手間なしに、
>  ラムダを利用できるのです。


>>583
それに関しては納得
前スレで書いたように、Rubyにおいてメソッドは一級市民(ファーストクラス)ではありませんからね
・Ruby 初心者スレッド Part 61
 mevius.2ch.net/test/read.cgi/tech/1503644351/210

603 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 01:57:26.36 ID:6htjEWah.net]
ここはJavaScriptスレじゃないよ

604 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 02:12:49.73 ID:mSK8fdnz.net]
>>585
JavaScriptは関数型だってことにしたいんでしょw

605 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 02:14:31.41 ID:6htjEWah.net]
>>586
JavaScriptの話はそっちのスレでやれってこと

606 名前:デフォルトの名無しさん [2017/12/25(月) 02:19:08.95 ID:h6gXOlbY.net]
>>585
まったくそのとおりですね
といふことで、JavaSciptのパイプライン演算子を提案され



607 名前:トいる方は、
JSスレヘお帰りになられるか、もしくわ

  日常的にカッコだらけになってしまうPython(>>579)

スレへ移動されるよう希望します

特にRubyと違ってPythonは関数が一級市民ですから、
JavaScriptの手法を適用するのは(Rubyよりも)容易でしょう
[]
[ここ壊れてます]

608 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 10:22:56.25 ID:yHCsyXBb.net]
Windows10 の、VS Code で、irb (PowerShell ターミナル)を起動して、

put "abc"
なら、実行できるけど、

put "あいう"
のように日本語があると、実行できないね

609 名前:589 mailto:sage [2017/12/25(月) 10:27:56.95 ID:yHCsyXBb.net]
put "abc" # あ

のように、コメントに日本語がある時は、実行できる

610 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 10:29:17.76 ID:FXcNW9u1.net]
>>589
それはrubyじゃなくてlibeditの不具合だよ

611 名前:589 mailto:sage [2017/12/25(月) 12:11:57.01 ID:yHCsyXBb.net]
知らないけど、UI 部分を、C言語とかで作っているから、
いつまで経っても修正できないのだろう

UI 部分は、VS Code みたいに、
ブラウザ技術を使っている、Electron で作れば良かった

612 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 20:14:59.36 ID:YHWK2l8N.net]
ねんがんのRuby 2.5.0をてにいれたぞ‼
https://www.ruby-lang.org/ja/news/2017/12/25/ruby-2-5-0-released/

613 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:16:04.65 ID:FXcNW9u1.net]
yield_selfは使いどころが結構ありそうだね

614 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:25:14.33 ID:s8SRCdHD.net]
使い方わかんないな

615 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 21:52:41.67 ID:YHWK2l8N.net]
yield_selfはこれまでメソッドチェーンをしたくてもできなかった場合で活躍するね
途中の一時変数は用無しになった

616 名前:デフォルトの名無しさん [2017/12/25(月) 22:38:48.18 ID:h6gXOlbY.net]
昨日のパイプライン演算子に関する話の中に出てきた >>583 のようなケースが
以下のように書けるようになる

https://ideone.com/hZI7wT

・Ruby 2.5 の yield_self - Qiita
 https://qiita.com/stomk/items/58dce3e5e294639ab1c9

F# や Elixir の登場ですっかり世間の認知度がアップしたパイプライン演算子、
すっかりハマって
「プログラミングスタイルをパイプライン形式(いわゆるメソッドチェーン)で統一して書きたい!」
という欲求を抑えられない人たちにとっては嬉しいメソッドの新設ではないかと思われ

個人的には、メソッド名は apply もしくはそれを短くした app が
感覚的に合っていた(エイリアスを定義するだけなんだけどね)



617 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 22:46:27.01 ID:mSK8fdnz.net]
ふっふっふ、ようやく気づいたかね?
昨日のパイプライン演算子の話は
ここにつながるのだよ

618 名前:デフォルトの名無しさん [2017/12/25(月) 23:07:16.77 ID:h6gXOlbY.net]
つまり:
・JavaScriptでは現時点だと最終的に採用されるか否かも定かでない Proposal 段階で、
 実験的な実装をいじってあーだこーだ議論している真っ最中
・一方、Rubyではとっくに議論を終えて公式にリリースを終えてしまった
といふ話ですね

619 名前:デフォルトの名無しさん mailto:sage [2017/12/25(月) 23:20:17.82 ID:YHWK2l8N.net]
ちょっと面白い発見
ppを使うのにrequire要らずだってあったから試してみたけど、
使った最初に自動でrequireするようになってる

$ ruby25 --disable-gems -e 'puts $"'
enumerator.so
thread.rb
rational.so
complex.so
/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/encdb.so
/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/trans/transdb.so

$ ruby25 --disable-gems -e 'pp $"'
["enumerator.so",
 "thread.rb",
 "rational.so",
 "complex.so",
 "/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/encdb.so",
 "/usr/local/lib/ruby/2.5/amd64-freebsd11/enc/trans/transdb.so",
 "/usr/local/lib/ruby/2.5/prettyprint.rb",
 "/usr/local/lib/ruby/2.5/pp.rb"]

620 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 14:56:29.62 ID:75dqQ4yg.net]
private methodを定義する時ってどう書くのが普通?

private def foo
__bar
end

def foo
__ bar
end
private :foo

# クラスの後ろにまとめて定義
private
def foo
__bar
end

621 名前:デフォルトの名無しさん [2017/12/26(火) 16:40:03.50 ID:pHnCZ49/.net]
自分の好きなタイミングで

622 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 17:17:14.64 ID:MQU8AiWM.net]
他人が読んで読みやすいとと思う書き方。

623 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 17:36:54.63 ID:Zhknjblq.net]
俺は後ろにまとめて書くようにしてる。
ついでに言うとprivateが連続した場合2個目以降のprivateは不要だが、パッと見て分かるように常に付けている。

最近は触って欲しくないメソッドはリファインメントを使うっていう手法を覚えたけど、これは異端なのか分からない。

624 名前:デフォルトの名無しさん [2017/12/26(火) 22:52:56.50 ID:pHnCZ49/.net]
アンチ息してる?
アンチスレ死亡してるみたいだけど

625 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 23:11:59.17 ID:Xx1508gc.net]
アンチスレ死亡させていいよ
存在価値無いし、ここで十分

626 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 23:45:46.61 ID:p5HaZQjy.net]
そもそもRubyのprivateって実質的な強制力はほぼゼロでコメントとしての意味くらいしかないからな
そういう意味ではよほど小さなクラスを除けば全部に付けないとあまり意味ないんじゃないか



627 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:21:36.89 ID:kb3Qecdj.net]
アンチがアンチスレの存在をすっごい嫌がってるのは、本スレで暴れたいからだろうな

だが、断る
アンチはあの過疎ったアンチスレへ帰るべきだ

628 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:24:11.45 ID:Kn/lt9VX.net]
結局ここにアンチが来てなくても
アンチの話題をしたいわけなんだよな
もう病気だと思うよw

629 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 01:24:47.07 ID:Kn/lt9VX.net]
アンチスレも定期的に見てるようだし

630 名前:589 mailto:sage [2017/12/27(水) 01:58:58.62 ID:u0gTyM9V.net]
>>589-592
自己レス

irb -E CP932

irb の起動時に、オプションを付けると、日本語文字列も正常になった

puts "あ"

Ruby は、Windows でも無敵やな!

631 名前:デフォルトの名無しさん [2017/12/27(水) 04:54:44.27 ID:vGbq0nNV.net]
>>601
人それぞれでいいと思うけど、自分はクラスの後ろにまとめて定義する派だね
ドキュメンテーションとしての可読性を重視し、あるクラス定義において
デフォは公開したいメソッドだけどキーワード private で宣言した以降の
セクションは非公開にしたいという意図がある

 class Klass
   公開したいメソッドの定義セクション
 private
   不公開なメソッドの定義セクション
 end

個別に宣言する private :foo を使うケースは、公開するつもりでクラスを設計したけど、
リファクタリングの過程で「このメソッドは非公開でもいいんじゃね?」と疑問を感じたら
private :foo を付けテストを流して実験するといった一時的なもの


>>607
確かに、メンバ変数のアクセス制限という概念が無く、全ての変数がpublicとして扱われるのよね
 https://qiita.com/nkennek/items/8c54365cb873cca8730a
 woodyring.blog.so-net.ne.jp/2013-05-25-1
ああ中途半端でめんどくさ

632 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:38:59.95 ID:kb3Qecdj.net]
612は勘違いしてる
変数にpublicも糞も無い

633 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 14:47:08.38 ID:K4eQH++r.net]
メンバ変数なんてない
インスタンス変数の事を言ってるならそもそもオブジェクトの外からはアクセスできない

634 名前:デフォルトの名無しさん [2017/12/28(木) 23:13:58.27 ID:zlcR2/4C.net]
みんな、デバッグはpで済ましてる?
それとも何かツール使ってる?

635 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 23:14:30.42 ID:AeGE7eie.net]
は? ppだろ

636 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 23:18:20.87 ID:s+AqweGp.net]
自前でpryもどきを作ってbinding.hogeしてる



637 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 02:26:20.85 ID:orHgNMeq.net]
awesome-print/awesome_print: Pretty print your Ruby objects with style -- in full color and with proper indentation
https://github.com/awesome-print/awesome_print

638 名前:デフォルトの名無しさん [2017/12/30(土) 03:43:26.25 ID:Codmlyj+.net]
最近、debug.rb知って使うようになったけど


pで間に合うデバッギングしかまだやってないんだよな

639 名前:540 mailto:sage [2017/12/30(土) 08:54:20.80 ID:M2I24uN0.net]
RubyInstallers の、7-Zip Archives の所からダウンロードした、
Ruby 2.4(x64)は、Rubyのポータブル版の実行環境だった。
Ruby 2.4(x64)は9MB で、解凍すると56MB になった

これだけでも、ファイルI/O など、結構遊べる

デフォルトで、erb, irb, minitest, sinatra などが入っている。
RSpec は入っていないけど

先に、bundler gem を入れて、
VS Code の画面で、Ruby Solargraph という拡張機能を入れると、
solargraph gem がインストールされるので、VS Code で補完ができる

VS Code で、Ruby のデバック用の拡張機能を入れようとすると、
Windows のネイティブコードにコンパイルする必要があるから、
The MSYS2 DevKit を入れる必要がある。
これが、1.7GB もあるらしいので、入れない方が良い

1行ずつデバッグせず、p などで表示しながら作るのが良い

MSYS2 DevKit を入れない範囲で、プログラミングするのが簡単

640 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 13:51:43.29 ID:KgXg1sy3.net]
JSON::Stateの挙動がマニュアルと違うのですがこれはバグでしょうか
https://ideone.com/Nd2wBc
https://docs.ruby-lang.org/en/2.4.0/JSON.html

641 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 14:02:41.65 ID:8kEk1hAU.net]
あぁ、バグだろうな。
お前のバグだ

642 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:07:11.63 ID:KgXg1sy3.net]
英語が読めなかったんですね。すみませんでした
マニュアルには「コロンとコンマの区切りの後にspace:で指定した文字列がおかれる」と書いてあります

643 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:21:25.29 ID:9j+d+4sf.net]
space_before: だろ

644 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:22:43.33 ID:KgXg1sy3.net]
space_beforeはコロンの直前なので関係ありません

645 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:25:29.81 ID:9j+d+4sf.net]
リストだからじゃね

646 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 17:05:16.47 ID:20iing1R.net]
何しても`,'の後ろには入らないね
バグっていうよりマニュアルの不備なのかな



647 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 17:25:46.52 ID:IKvN98q1.net]
,の後ろにスペース入れるのは一般的なフォーマットだから、常識的にはドキュメントの方が正しいでしょ
直してプルリク出せ

648 名前:デフォルトの名無しさん [2018/01/02(火) 13:03:30.40 ID:nZWiMujw.net]
明けおめ
今年初のRubyスレ書き込み

649 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:10:18.61 ID:Q+9WD3Xu.net]
新年からRailsを勉強中。環境はwin64 

<%= csrf_meta_tags %>

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'default', 'data-turbolinks-track': 'reload' %>
</head>

さっきから、こいつに対してExecJS::ProgramError hogehoge#indexってエラーを吐いてばかり

coffee-scciptも1.8.0にしてもさっぱり解決せず。libv8とtherubyracerを入れろとか書いてるけど、
さっきから2時間以上苦戦してるが、全くインストールできずエラーばっかり

何なんだこれ

650 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:12:28.67 ID:Q+9WD3Xu.net]
違った、viewの中身はこいつだ

<!DOCTYPE html>

<html>

<head>

<title>hogehoge</title>

<%= csrf_meta_tags %>


<%= stylesheet_link_tag "application", media:"all", "data-turbolinks-track"=> true %>

<%= javascript_include_tag "application", "data-turbolinks-track" => true %>

</head>


<body>

<%= yield %>

</body>

</html>

651 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:13:36.50 ID:NRmrCA2E.net]
今時WinでやるならWSLを使おう
どうせ運用はLinuxなんだからそれに慣れる意味でもな
あと、オワコンCoffeeなんか今更使っちゃダメ

652 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:30:29.29 ID:Q+9WD3Xu.net]
タイトルでそう思ったけど、ここ初心者スレじゃなかったのか
仕方ない、自分でもうしばらく足掻くか

653 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:32:05.53 ID:ZaEks4dH.net]
WSL使おうってアドバイスがあるのにさらっと無視するようじゃ、初心者スレ云々の問題じゃないかと思われる

654 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:37:12.02 ID:IA96dLm2.net]
すべてのwindowsでWSL使えるわけじゃないのに何言ってるの

655 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:42:47.77 ID:ZaEks4dH.net]
だったらWSL使えないって言えよ
そしたらVMWare使えってアドバイスもらえるんだからさ

656 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 22:44:20.68 ID:IA96dLm2.net]
答えのわからない質問に、的はずれな回答しなくていいから
わからないなら黙ってなさい



657 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:44:42.35 ID:0mS9Giqv.net]
原因わかったよ、鋸使わなかったから
鋸使ったらうまくいった

あとで調べたらWSLは互換性がどうたらとか書いてたし、VM使うほど容量に余裕ないんで
でもまあwindowsよりLinux使えってのが大きなヒントになったのは確か

658 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 00:53:49.79 ID:BK81yZAH.net]
互換性はWSLの方が遥かにマシだぞ
WinのRubyなんか動いたらラッキーレベルのおまけ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<287KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef