[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:419

From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Thu, 17 Feb 2005 00:14:11 +0900
Subject: [yarv-dev:419] Re: defined? について

まつもと ゆきひろです

In message "Re: [yarv-dev:416] Re: defined? について"
    on Wed, 16 Feb 2005 23:49:58 +0900, SASADA Koichi <ko1 atdot.net> writes:

|> とすると、どのようなケースで楽したいと思ったんですか。
|> 
|>   defined?(a.b.c(d,e))
|> 
|> とか?
|
| はい。ほかにも "assignment" などを考えなくて済むので楽が
|出来るかと。

ふうむ、その場合、Ruby言語のdefined?のドキュメントはどのよう
な記述になると思いますか。

実装で楽するために結果的に挙動が複雑になってドキュメントが難
しくなってユーザーの混乱を招くのはうれしくないのですが。逆に
言えば実装で手を抜いてもユーザーが「ああ、defined?ってそうい
うものね」という幻想をいだくことができれば構わないわけです。

現在の「任意の式に対してdefined?かどうかを返す(定義はともか
く)」という仕様は、「ある一定の(ユーザーがすぐに理解できると
は限らない)基準を満たした式がdefined?かどうかを返す、基準を
満たさない場合にはコンパイルエラー」よりもユーザーのフラスト
レーションは少ないように思います。

極端な話、知らない式は「実行してみて例外が起きればnil」でも
構わないと思います。また、defined?の展開はコンパイラが行うべ
きだと思います。コンパイル時に

  defined?(true) -> "true"

のような変換を行うという意味ですが。

                                まつもと ゆきひろ /:|)

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       412 2005-02-16 20:02 [ko1 atdot.net       ] defined? について                       
       413 2005-02-16 22:17 ┗[matz ruby-lang.org  ]                                       
       414 2005-02-16 22:36  ┗[ko1 atdot.net       ]                                     
       415 2005-02-16 22:59   ┗[matz ruby-lang.org  ]                                   
       416 2005-02-16 23:49    ┗[ko1 atdot.net       ]                                 
       417 2005-02-16 23:58     ┣[matz ruby-lang.org  ]                               
       418 2005-02-17 00:02     ┃┗[matz ruby-lang.org  ]                             
->     419 2005-02-17 00:14     ┗[matz ruby-lang.org  ]                               
       420 2005-02-17 03:59      ┗[ko1 atdot.net       ]                             
       421 2005-02-17 04:15       ┗[matz ruby-lang.org  ]