[#47861] ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@...

20 messages 2011/02/10
[#47874] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

前川です。

[#47875] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47876] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

[#47877] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47878] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — Kenta Murata <muraken@...> 2011/02/15

むらたです。

[ruby-list:47917] Re: 2 種類のリテラル

From: Satoshi GUNJI <gunjisatoshi@...>
Date: 2011-02-23 08:30:26 UTC
List: ruby-list #47917
郡司と申します。

#雑談です ;-)

> きしもとです

> インスタンスがシングルトンないし有限個なオブジェクトは
> 同じオブジェクトが返ってくるほうになりますかね。

なんか「シングルトンなリテラル」でいいような気がしてきました。
識者のご意見を伺いたいところです。


> リテラルとは何か、という話にもなりそうに思いますが、(たまたま手元に
> あった)岩波情報科学辞典や、FOLDOC では、リテラルとは定数である、という
> 流儀で説明されていますが、(たとえば)Ruby のリテラルとは違う感じが
> しますね。

「直接オブジェクトを生成する式」という表現が一番しっくり来ますね。

http://i.loveruby.net/ja/rhg/book/minimum.html


> Bignum だとキャッシュする実装もあっておかしくないように感じます。

ですね。なぜ毎回違うオブジェクトが生成されるのかは、
識者の方の解説を期待してみたり。


で、さらに余談なのですが、もともとの話は

「常に同じオブジェクトが返るリテラルのことを何と呼ぶか」

という話だったかと思うのですが、たとえば

10000000000

というリテラル表現がありますが、これは32ビットCRuby環境だと
Bignumが返り、64ビットCRuby環境ではFixnumが返ります。

・32bit CRuby

--------
irb(main):001:0> 10000000000.class
=> Bignum
irb(main):002:0> 10000000000.object_id
=> -609828758
irb(main):003:0> 10000000000.object_id
=> -609839038
irb(main):004:0>
--------


・64bit CRuby

--------
irb(main):001:0> 10000000000.class
=> Fixnum
irb(main):002:0> 10000000000.object_id
=> 20000000001
irb(main):003:0> 10000000000.object_id
=> 20000000001
irb(main):004:0>
--------

で、「常に同じオブジェクトが返るリテラル表現」に名前があったとして、
たとえば

10000000000

はそれに該当するのでしょうか。

#「32ビットのCRubyの環境では該当しないが、64ビットのCRubyの
#環境ならそれに該当する」みたいな前提をつければいいのかも
#しれませんが、なんだか面倒‥‥。

In This Thread