ハロウィンでは菓子さえ渡せば本当に悪戯されないのか?

七鍵守護神(ハーロ・イーン)!

にゃん石どのとハロウィンパレードでしたよ!
にゃん石どのとハロウィンパレードでしたよ!

と言うことで、ここ日本でも

  • 「全ての菓子が南瓜味になり、翌月はワゴンに並ぶ季節」
  • 「コスプレしたDQNが渋谷で騒ぐ日」
  • 「彼女が夜中にエロい格好してくれる日」

として間違った風習が定着しつつあるハロウィンの季節となりましたが、私は「トリックorトリート」という脅し文句がどうも腑に落ちないのです。


Trick or Treat。
そのまま訳せば「困らせるぞ、さもなくばご馳走(おもてなし)しろ」って感じですかね。
お菓子をくれなきゃ悪戯するぞ」って意訳の方が子供っぽくて一般的なので、以下の説明ではこっちを使います。

さて。「菓子を渡さないと悪戯する」と脅されたのですが、逆に「菓子さえ渡せば絶対に悪戯されない」のでしょうか。
けものはいてものけものは本当にいないのか?」の時みたく、Kotlinで検証コードを書いてみました。

https://gist.github.com/kawaveri/80f3971883a99a49fa785f062770ee50

で、プログラム本体がこちら。
kotlinでは「trick or treat」っていう文がそのままプログラムとして実行できます。超解りやすいですね。

/**
 * お菓子をあげるか悪戯するかを判定します。
 *
 * @param trick 悪戯する
 * @param treat お菓子をあげる
 * @return お菓子をあげるか悪戯するの条件を満たしたらtrueを返します
 */
 fun trickortreat(trick: Boolean, treat: Boolean): Boolean {
 // お菓子をあげるか悪戯するの条件を満たしたらtrueを返します
 return trick or treat
 }

んで、実行結果がこちら。

菓子か悪戯、どちらかで満足するようになった
菓子か悪戯、どちらかで満足するようになったが・・

TrickかTreatどちらかの条件を満たせば満足するので「菓子をあげたら悪戯しない」「菓子をあげなかったら悪戯される」という常套句が正しいことが証明されました。
しかし、だがしかし!
or条件には「菓子をもらって悪戯もする」パターンが含まれてました。
Treatしたからと言って、絶対にTrickされない約束なんて最初から無かったんです…!

ちょっと条件変えてみましょうかね。
今度は両方揃った時のみ成立する、「Trick and Treat」の条件で動かしてみます。

// お菓子をあげるか悪戯するの条件を満たしたらtrueを返します
return trick and treat

菓子も奪われ悪戯もされる、最悪の結果に。
菓子も奪われ悪戯もされる、最悪の結果に。

「菓子と悪戯を要求しる!」という最悪の結果になりました。
…うわっ、こいつ最悪だな!救いの選択肢無しかよ!and条件では全く和解する気なさそうですね…。

このままでは、いくら謝罪しても賠償され続ける最悪のハロウィンになりそうですね…さあ、どうしよう。

そこで登場する条件が排他的論理和(xor)です。
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20020731/1/?ST=spleaf

この「xor」は、TrickかTreatどちらかの条件が揃った時のみ成立する、両方やることもやらないことも許さない。ちょっと特殊な条件です。

// お菓子をあげるか悪戯するの条件を満たしたらtrueを返します
return trick xor treat

全部期待通りの答えが返ってきました!
全部期待通りの答えが返ってきました!

おお、ようやく期待通りの答えが返ってきました。
これだったら、菓子も奪われ悪戯もされる様な想定外の事態は起きなさそうですね。

結論!これからは誤解を招かないように「Trick xor Treat?」と尋ねましょう。なんて発音するのか知らないですけど!

※注1:テストの中には「菓子も悪戯も拒否した場合」といった検証項目も含まれてましたが、これ実際に両方拒否したらどうなんでしょうね?
元が欧米の行事なので「300ドルの訴訟を起こされる」「頭をショットガンで撃ち抜かれる」とか碌な結果にならなそうですが。。!
※注2:と言うか、本来の英文では「Treatしろ、さもなくばTrickするぞ」「TrickされたくなければTreatしろ」と強制力の強い排他的二択であることを踏まえてのプログラムネタ投稿ですのでご了承ください。
or条件の英文と言えば「Do Or Die」とか「March or Die」とか「Speak English Or Die」とか…やたら物騒な選択肢が多いですよね…。
※注3:ジャーマンメタル愛好家の間では「Helloweenは守護神伝まで」という意見も多いですが、「Pink Bubbles Go Ape」は良いアルバムですよ…なかなか賛同は得られないですが。

//www.youtube.com/embed/L_VSEtk5Yik