scivola

Results 42 issues of scivola

Ruby code: ```rb p /(.)(\g)/.match("AB") # => # ``` I expected the following result: ```rb # => # ```

https://docs.ruby-lang.org/ja/3.1/doc/spec=2fenvvars.html に,Ruby 3.1 で導入された環境変数 `RUBY_YJIT_ENABLE` が抜けています。 あと,よく分かりませんが,Windows だと `RUBYLIB_PREFIX` があるんでしたっけ? 個別のライブラリーが参照する環境変数は(組込みクラスに限っても)挙げるとキリがないのかもしれませんが,RubyVM が参照する環境変数(`RUBY_THREAD_VM_STACK_SIZE` など)は入れなくていいのでしょうか?

File クラスのページ https://docs.ruby-lang.org/ja/3.0.0/class/File.html には,`File.read`,`File.write`,`File.binread` の類がありません。 なんとなく「`IO.read` 等を引き継いでるから記載されていないのだろう」と思い込んでいたのですが,`IO.read` がコマンド実行可能なのに対し,`File.read` はできませんから,完全に別のメソッドですよね?

Object#eql? の用途について, https://docs.ruby-lang.org/ja/2.7.0/method/Object/i/eql=3f.html には > Hash で二つのキーが等しいかどうかを判定するのに使われます。 としか書かれておらず,ハッシュの内部実装だけで使われているような印象を受けます(私はこの文を見て長らくそう勘違いしていました)。 しかし実際にはさまざまなメソッドで用いられています。 例: - [Array#union](https://docs.ruby-lang.org/ja/2.7.0/method/Array/i/union.html) - [Array#uniq](https://docs.ruby-lang.org/ja/2.7.0/method/Array/i/uniq.html) - [Array#&](https://docs.ruby-lang.org/ja/2.7.0/method/Array/i/=26.html) いくつかのメソッドを例示するなどして,`eql?` が広範に用いられていることが分かるようにしてはどうでしょうか。 一方,何を使って判定しているかが書かれていないが,どうやら `eql?` が使われていそうなメソッドがいくつかあります。`eql?` を使っているものはそのことをはっきり書く必要があると思います。 `eql?` かな?と思われる例: - [Enumerable#uniq](https://docs.ruby-lang.org/ja/2.7.0/method/Enumerable/i/uniq.html) - [Enumerable#group_by](https://docs.ruby-lang.org/ja/2.7.0/method/Enumerable/i/group_by.html) - [Set](https://docs.ruby-lang.org/ja/2.7.0/class/Set.html)...

特異クラスと特異メソッドについての素朴な知識ではクラスメソッドを理解することができません。 クラス C の特異メソッドはクラス C のサブクラスでも特異メソッドとして使えてしまいます。 このことは,[特異メソッド定義](https://docs.ruby-lang.org/ja/3.0.0/doc/spec=2fdef.html#singleton_method) において > クラスの特異メソッドはそのサブクラスにも継承されます。言い替えればクラスの特異メソッドは他のオブジェクト指向システムにおけるクラスメソッドの働きをすることになります。 のようにさらりと述べられているだけです。これではクラスの特異メソッドが特別扱いされているのかすら判然としません。 どうやら,クラス以外のオブジェクトの特異クラスは自身のクラスのサブクラスとして作られるのに対し,クラスの特異クラスは自身のスーパークラスの特異クラスのサブクラスとして作られるようです。 ふつうのユーザーはこんなことを知らなくてよいのかもしれませんが,中級の学習を進めていくとわりと簡単にこの問題にたどり着き,頭を悩ませることになります。 どう加筆修正すればいいのか分かりませんが,何かしらもう少し説明を加える必要があるのではないかと思いました。

Numeric,Integer,Symbol などには `hash` メソッドが載っていません。 (Float,String,Array などには載っています)

「字句構造」 https://docs.ruby-lang.org/ja/2.7.0/doc/spec=2flexical.html の冒頭に > 改行は行が明らかに次の行に継続する時だけ、空白文字として、それ以外では文の区切りとして解釈されます。 とあります。 「明らかに次の行に継続する時」というのは, ```rb puts 1 + 2 ``` とか ```rb foo( 2) ``` のように,「改行の前までで完結していないとき」という意味だと思いますが,Ruby 1.9 以降, ```rb puts "Ruby" .upcase ``` のように,その行だけ見れば完結していると解釈しうるケースが入りました。 当該の文は Ruby 1.8...

問題の範囲をまだ特定できていないのですが,`File.open` に渡せるはずの `universal_newline` オプションが載っていません。 https://docs.ruby-lang.org/ja/2.7.0/method/File/s/new.html doctree リポジトリー内で `universal_newline` を検索したところ,Encoding_Convereter と String にしかありませんでした。

以下のように,計算を放棄する場合があります。 ```rb 10 ** 9942067 # => Infinity ``` このとき ``` warning: in a**b, b may be too big ``` と警告が出ます。 結果が巨大すぎる整数になりそうなとき,計算を行わないで `Float::INFINITY` を返す仕様だそうです。 Slack ruby-jp で教えていただきました。 このあたり https://github.com/ruby/ruby/blob/ruby_2_7/bignum.c#L6279-L6286 で判定しているようです。...

platform/ 下のファイルがだいぶ古い感じがしますので,ここに気づいたことを書いておきます。 ◎Ruby が動作するプラットフォーム https://docs.ruby-lang.org/ja/2.7.0/doc/platform=2findex.html このページはリファレンスの目次や他のページからはリンクされていないようです。 しかし,検索エンジンにインデックスされていますので,メンテナンスは必要かと思います。 以下の課題があります。 - インストールガイドがリンク切れ(https://github.com/rurema/doctree/pull/2146 で解決~予定~) - 箇条書きのレイアウトが崩れている( #2166 で解決) - platform/GNU Hurd へのリンクがリンクになっていない ~~(追記)箇条書きがおかしいのは先頭の `*` の前にインデントが無いことが原因と分かりました。 https://github.com/rurema/doctree/pull/2146 のマージを待ってからプルリクエストを作ります(コンフリクトを避けるため)。~~ →済 ◎インデックス以外のページ(各プラットフォームのページ) 以下のものがあります。 - bccwin32.rd -...