タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

pythonとrubyに関するmasudaKのブックマーク (2)

  • RubyとPythonの違いからガベージコレクタを理解する - ワザノバ | wazanova.jp

    http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置

  • Ruby における演算子の再定義と、Python の演算子オーバーロード - コンテナの要素を添え字で参照するためメソッド

    1. Ruby における演算子の再定義 Ruby の配列参照演算子 Ruby では、 要素を保持するオブジェクトに対して、 配列の要素を指定するように書くことができる。 これを「配列 参照 演算子」という。 「たのしいRuby」を読んだときに、この書き方は、すぐに忘れると思った。 配列参照演算子とは、配列やハッシュで用いられる [i] と [i]=x のことです。これらは、それぞれ [ ] と [ ]= という名前で定義できます。 (第1版, p348) 当時、プログラミング言語は Java くらいしか知らなかったので、 「二項演算子を定義するには、演算子をメソッド名としてメソッドを定義」 (同上, p346) できるということには驚いた。また、 def +(other) とメソッドに書けることに、違和感さえ覚えた。 クラス/メソッドの定義 - Rubyリファレンスマニュアル によると、

    Ruby における演算子の再定義と、Python の演算子オーバーロード - コンテナの要素を添え字で参照するためメソッド
  • 1