[#43032] 「何もない(nil)」+「何か(v)」→「何か(v)」 — take_tk <ggb03124@...>
たけ(tk)です
9 messages
2006/12/11
[#43033] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」
— Yukihiro Matsumoto <matz@...>
2006/12/11
まつもと ゆきひろです
[#43042] はじめまして — "hiroshi kamata" <hiroshi_kamata@...>
11月22日の朝日新聞夕刊をみて興味をもったものです。
6 messages
2006/12/13
[#43064] soap4rでの送信フォーマット変更 — "中田雅美" <mimiger2007@...>
はじめまして、本日登録しました中田と申します。
4 messages
2006/12/18
[ruby-list:43041] nil と unknown
From:
take_tk <ggb03124@...>
Date:
2006-12-12 12:49:25 UTC
List:
ruby-list #43041
たけ(tk)です。 [ruby-list:43035] Re: 「何もない(nil)」+「何か(v)」→「何か(v)」 にて Masou <mas@masou.net> さん 曰く: > 「論理的」には「値がある」を否定したとき、 > 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