There are several reasons why MM reduces errors during programming.
income
instead of profit
. It seems reasonable that
the latter will be less likely in the first place, and easier to spot
once made (names have more inherent meaning than cell numbers). In particular,
motor slips --- accidentally moving the cursor or mouse
to the wrong cell --- will be eliminated.
Errors could be reduced further by using dimensional analysis. For
example,
money and interest
rate are both real numbers. However, if MM permitted the programmer
to declare one as of type money
and the other as type
interest_rate
, then the compiler could be equipped with the
rules of dimensional analysis, enabling it to detect an attempt
to add one to the other (it is a general rule in dimensional
analysis that one does not add quantities that have different base units).
In a similar way, the compiler could be given a rule that one does not
multiply monetary units together, enabling it to catch the accidental use
of *
instead of +
.
@sum
to sum a range, and
forgot to update the range when adding a new item.