From: Inaba Hiroto Date: 1999-03-23T10:18:15+09:00 Subject: [ruby-dev:6450] Re: [REQ] Object#+@ as identity (Re: [REQ] p -10 == p(-10)) 稲葉です. 本題はまだですが, 一言書いておこうと思って忘れていた`identity' について書きます. Subject: [ruby-dev:6441] Re: [REQ] Object#+@ as identity (Re: [REQ] p -10 == p(-10)) From: matz@netlab.co.jp (Yukihiro Matsumoto) Date: Tue, 23 Mar 1999 01:47:10 +0900 > まつもと ゆきひろです > > In message "[ruby-dev:6439] Re: [REQ] Object#+@ as identity (Re: [REQ] p -10 == p(-10))" > on 99/03/22, Inaba Hiroto writes: > |全てのobjectに共通する「idnetity」メソッドってあってもいいんじゃないで > |しょうか?自分はSmallTalkは知らないのですが、Common Lispにはidentity関 > |数があります。(おっと、emacs-lispにもありますね。)rubyではsendを駆使し > |た時に欲しくなるかも知れないと思います。 > > identityってナニ? って状態なのですが,確かにありますね.な > んに使うんでしょう? オブジェクト指向言語では`identity'は「同一性」の意味に使う事が多い(ほ とんど?)ですが, ここでは数学用語の「恒等関数」の意味です. emacs-lisp manualの和訳の一節です: Lisp関数の場合、(フック変数や属性リストのように)引数として関数を受け 取ったり、データ構造内に関数を置き、`funcall'または`apply'を使ってそ の関数を呼び出すことがよくあります。関数引数を受けつける関数は、"ファ ンクショナル(functional)"とも呼ばれます。 ファンクショナルを呼び出す場合、何もしない関数を引数として指定できる と便利な場合があります。何もしない関数を二つ紹介します。 -- Function: identity ARG この関数はARGを返すだけで、副作用はありません。 -- Function: ignore &rest ARGS この関数は、引数を無視して`nil'を返します。 -- 稲葉 浩人