|
[ruby-list:43041] nil と unknown: msg#00026lang.ruby.japanese
たけ(tk)です。 [ruby-list:43035] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」 にて Masou <mas-9llTFxQsTTteoWH0uzbU5w@xxxxxxxxxxxxxxxx> さん 曰く: > 「論理的」には「値がある」を否定したとき、 > 1.「値がない」 empty > 2.「値が不明」 unknown > と2つの場合(それ以上は?)を一般的に考えます。 > > empty の場合は、take_tkさんの考え方でもいいかもしれませんが、 > unknown の場合は、「unknown」+「何か] = 「unknown」です。 > > 3値理論では、empty も unknown も nil として扱います。 > 4値理論では、一般的に empty と unknown とを区別します。 ありがとうございます。3値論理をいろいろ調べてみて、勉強になりました。 Ruby の nil は3値論理の unknown でもなくて(※)、多義的で性格が曖昧も しくは一定していないということですね。(実用的とも言う)。 ※ http://www.geocities.jp/mickindex/database/db_3vl.html によると !unknown → unknown だが Ruby では !nil → nil ではない。 考えてみれば、Rubyでは「失敗」の意味でnilを使うことも多い。メソッドが普 通は数値を返すが、失敗したときに、例外を生成するほどでもないときに、nil を返すというようなものがある。そのような場合には、戻り値(nil)+1 などは失 敗したほうがよいですね。つまり、NilClass#+ は未定義のほうがよい。 take_tk = kumagai hidetake
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:43040] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」, GOTO Kentaro |
|---|---|
| Next by Date: | [ruby-list:43042] はじめまして, hiroshi kamata |
| Previous by Thread: | [ruby-list:43035] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」, Masou |
| Next by Thread: | [ruby-list:43036] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」, 小西 弘将 |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |