タグ

OOPとrubyに関するkiyo_hikoのブックマーク (2)

  • ITpro - まつもとゆきひろのプログラミング言語論(2)

    リスト4 動的言語の柔軟性<BR>Rubyのライブラリには,IOとStringIOというクラスが存在する。StringIOはIOと継承関係はないが,ほぼIOと同じ名前のメソッドを備えている。このため,ほとんどの場面でIOと同じように利用できる。例えば文中に登場したlog_puts()の引数として,StringIOクラスのオブジェクトも指定できる。 オブジェクト指向とは密接な関係がある 現在では,ほぼすべての動的言語がオブジェクト指向機能を提供しています。もちろん静的言語にオブジェクト指向機能がないわけではないのですが,オブジェクト指向と動的言語にはかなり密接な関係があります。 世界最初のオブジェクト指向言語はSimulaです。Algolの影響を受けた静的型の言語だったのですが,整数などのデータ型を除いたすべてのオブジェクトは「Ref」という一つの型を通じて取り扱われました。どのクラスのオ

    ITpro - まつもとゆきひろのプログラミング言語論(2)
  • Common Lispのイコール(eq eql equal equalp) - ありの日記

    どの言語にも2つの値(オブジェクト)が等しいかどうかという判断が必ずあると思う。例えばxとyの値が等しいかどうかっていう処理はよくでてくるはずである。当然Common Lispにもその判断を行うための方法が用意されていて、Common Lisptでは「EQ、EQL、EQUAL、EQUALP」という関数で定義されている。 名前で区別つかないので、絶対忘れる系。なので、メモっておく。また、Common LispではNILが偽で、それ以外のものはすべて真となる。ただ、空のリスと'()もNILと同等のようだ。 EQ(オブジェクト同一性) CL-USER> (eq 10 10) T ただし、この式が真になるか偽になるかはLispの処理系によるらしい。うーん。とりあえずこいつはあんまり使うこと無いのかな。 EQL 比較するオブジェクトのクラスと値までみて同じかどうか判断する CL-USER> (eql

    Common Lispのイコール(eq eql equal equalp) - ありの日記
    kiyo_hiko
    kiyo_hiko 2011/02/25
    コメント欄がディープで楽しすぎる。
  • 1