keitaの日記: XPathって変なモノ
日記 by
keita
ところで変なモノはヘナモンです。
カスミン観ましょう。
さて、今XPathをざっとみてるんですけど、なんか気持ち悪い。
仕方ないよなぁと分かっちゃいるけど。
例えば比較演算子で
a: -3 < -2 < -1
b: (-3 < -2) < -1
が同じだということ。
だって"-3 < -1"はtrueを返すんでしょう?
なら"true < -1"で偽になる(trueが1になるから)。
直観だとaは真だよねぇ、同じじゃないじゃん(ワガママ?)。
a2: 1 < 2 < 3
b2: (1 < 2) < 3
ならa2が真であってくれて丁度良いのだけど。
やっぱり真偽値と数値の比較はどうかと思う。
aみたいな三値の比較を文法違反にしなかったのは何故だろう。
あと数値の比較演算子。
NaNが数値ではない値だとすると、
c: NaN = 1 => 偽
d: NaN = NaN => 偽
e: NaN != 1 => 真
f: NaN != NaN => 真
なんだってさ。
つまりNaNとの"="での比較は無条件に偽になって、
"!="では無条件に真になるそうだ。
c,eはまぁいいとして、d,fはちょっと乱暴だよね。
数値でない何かと数値でない何かを比較したら一致することだって
ありそうなものだけど、とはいえこれはあくまで数値の比較演算子
だから難癖つけるだけと言えるけど。
しかし、keita' = keita' が偽というのはなんとも。
それに keita' != keita' が真なんですよね。
(NaNがkeita'という値を含む場合)
むー。
d,fの根拠はNaNに属する"keita'"と"sapporo'"が
等しくないことにあるんだろうとは思うんだけど、
それでも同じ値に対する比較はd,fに従わなくてもいいだろうし、
逆にカテゴリNaNに属している値が唯一存在するものと考えると
d,fの説得力はそもそもないことになるし。
XPathの達人はこの辺の気持ち悪さをどうやって克服してるんだろう?
カスミン観ましょう。
さて、今XPathをざっとみてるんですけど、なんか気持ち悪い。
仕方ないよなぁと分かっちゃいるけど。
例えば比較演算子で
a: -3 < -2 < -1
b: (-3 < -2) < -1
が同じだということ。
だって"-3 < -1"はtrueを返すんでしょう?
なら"true < -1"で偽になる(trueが1になるから)。
直観だとaは真だよねぇ、同じじゃないじゃん(ワガママ?)。
a2: 1 < 2 < 3
b2: (1 < 2) < 3
ならa2が真であってくれて丁度良いのだけど。
やっぱり真偽値と数値の比較はどうかと思う。
aみたいな三値の比較を文法違反にしなかったのは何故だろう。
あと数値の比較演算子。
NaNが数値ではない値だとすると、
c: NaN = 1 => 偽
d: NaN = NaN => 偽
e: NaN != 1 => 真
f: NaN != NaN => 真
なんだってさ。
つまりNaNとの"="での比較は無条件に偽になって、
"!="では無条件に真になるそうだ。
c,eはまぁいいとして、d,fはちょっと乱暴だよね。
数値でない何かと数値でない何かを比較したら一致することだって
ありそうなものだけど、とはいえこれはあくまで数値の比較演算子
だから難癖つけるだけと言えるけど。
しかし、keita' = keita' が偽というのはなんとも。
それに keita' != keita' が真なんですよね。
(NaNがkeita'という値を含む場合)
むー。
d,fの根拠はNaNに属する"keita'"と"sapporo'"が
等しくないことにあるんだろうとは思うんだけど、
それでも同じ値に対する比較はd,fに従わなくてもいいだろうし、
逆にカテゴリNaNに属している値が唯一存在するものと考えると
d,fの説得力はそもそもないことになるし。
XPathの達人はこの辺の気持ち悪さをどうやって克服してるんだろう?
XPathって変なモノ More ログイン