这种设计并不奇怪,实际上这是一种被称作“常数计算”的功能,几十年前就有了。
不信可以先尝试以下操作:在Windows 10自带的计算器应用中输入1+2,然后一直按=键,可以发现每按一次=键结果都被加上了2。
实际上,常数计算的功能被用在含有两个操作数的运算中,例如加、减、乘、除、任意幂、任意幂开方的运算等。当按下=键时,该功能被记录,使得用户可以在继续按=键的情况下,将前面的运算中的第二个操作数作为常数k且作为新的第二个操作数,而前一次计算的结果作为第一个操作数。但由于平方运算只需要一个操作数,因此原来的第二个操作数与运算的记录仍然存在,可以简单地理解为堆栈。(即第一层为第一个操作数,第二层为运算符,第三层为第二个操作数,平方运算仅仅对第一个操作数有效,第二、三层不受影响。)
这样,上面的操作在计算器内部的运算就是:
1+2=3;
2→k;
3+k=5;
5+k=7;
……
早期实体的单行显示计算器由于只能显示一行数字结果,在需要连续计算的情况下,这种功能是十分有用的,而且这一功能与夏普的单行显示计算器最为相似。以上世纪80年代的EL-506H为例,执行问题所述的操作:
可以看到与问题的描述完全一致。
卡西欧早期生产的单行显示计算器虽然也有常数功能,但需要将运算符按两次才能出发该功能,并在屏幕上显示一个“K”的标记。例如1+2+2+2+……就需要按1、+、+、2,然后一直按=键。
现在双行显示以及更高级的计算器,由于采用了一次性将表达式按书写顺序输入的方式,这种连续计算的功能变成了通过调用上一次计算结果“Ans”功能代替,例如1+2+2+2+……就可以按如下方式计算:1+2=3;然后输入Ans+2,一直按=即可。
嘛,可能现在一部分人根本没接触过这样的计算器,所以才会少见多怪。