妻「卵200円未満ならカニカマ買ってきて」言語化で話題もツッコミ多数

ツイッターにおいて「卵が200円未満ならカニカマを買ってきて」と頼まれた部分をプログラミング言語風に翻訳したツイートが話題になっている。

本人は上のようなプログラムを示したようであるが、JSでもRubyでもPHPでもない何だか不気味な書き方であると言えるだろう。PHPなら引数無しの場合でも関数名の後に();を付けないとエラーになるので、PHP風に書けばbuy(牛乳);みたいになるのだろう。もっと言えば牛乳は文字列なので”牛乳”としないといけないかもしれない。buyという関数を示しているがその関数が定義されていないので実際に動かすとエラーになるだろう。実際に定義するならばbuyという関数内でカートに入れるという動作を行い個数または金額が所定の値になればレジに向かうという事なのだろう。
それはそうとして、一番突っ込まれていたのが以下を「<」と表現している部分である。多くのプログラミング言語では、「<」は以下として解釈されない。以下と書きたければ<=と書くか、記号をそのままにするなら201にしなければならない。本人はその後プログラムはそのままにして「実は未満という事です」というように訂正していたが、cssだけ触っているような人が書きそうなふんわりとした書き方であるのは言うまでも無いだろう。以下と未満の解釈は長年やっているプログラマーでもよく間違える部分である。玉子が変数ならpriceは何なのかと思う人もいるかもしれない。
もう一つのツッコミが「玉子が200円未満なら玉子は買わないのか」という部分である。玉子が200円未満ならカニカマを買うというそれはそれでいいのかと思う部分であるが、コメントでは「家の玉子の数を数える」「何個入りか考える」「今は200円の玉子はない」「消費期限が持つか考える」等と色々言われており、それを実装するとかなりの長文になるがそのような事を人間の頭ではスムーズに考えているという事なのだろう。日本語の曖昧な部分はプログラマーからすればPHPで書いてくれと思う人もいるかもしれないが、相手がプログラマーならばこのような話も通じるのかもしれない。