老婆给当程序员的老公打电话:“下班顺路买一斤包子带回来,如果看到卖西瓜的,买一个。” 当晚,程序员老公手捧一个包子进了家门。。。 老婆怒道:“你怎么就买了一个包子?!” 老公答曰:“因为看到了卖西瓜的。”
严格的讲老婆的话是有二义性的,最后买一个没有明确买的西瓜还是包子,也没有说清楚是加买一个还是只买一样东西。
从生活的角度,程序员是情商太低了,把编程的思维带到了生活中来,不能揣测出别人的意思,不过至少中国很难出现这样的程序员,因为生活有足够的力量让你变得聪明起来。
老婆的程序:
买一斤包子; if (看到卖西瓜的) 买一只(西瓜);
程序员老公的程序:
if ( ! 看见卖西瓜的) 买一斤包子; else 买一只(包子);
其实正确的程序应该是
function 下班后需要执行的老婆的指令(){ var 带回来的东西 = []; 带回来的东西.push(顺路买一斤包子()); if(看到卖西瓜的){ 带回来的东西.push(买一个西瓜()); } return 带回来的东西; }