FileMakerの&演算子

さるDBを分析していると、計算式にすごいものを見つけた。2つの論理式のAND条件を取るためなのか、なんと、

A = B & C = D

という式が記載されている。前後が条件式なので、AND条件なんだろうか? なんじゃこらと思った。普通はC由来のプログラマ脳だと&&とやってエラーになって怒られるが、この式は当然ながら文字列結合の&演算子なのでエラーにならない。

FileMakerではfalseは数値の0、trueは数値の1だ。論理式A、Bについて、A & Bの結果は、どうなるかといえば、AがfalseでBもfalseなら “00” となりこれを論理式として評価すると数値の0でありfalseになる。A、Bが一方が1の場合、”01″ あるいは “10”となって数値化すると0でないのtrueになる。A、Bともにtrueなら、”11″を数値化して11はtrueだ。すると、&は、ORなのか! これはすごい。すごすぎる。

こんなものを納品するデータベースに書いたやつの顔が見たいね…