十进制数字自然数的语义

Semantics of Decimal Digit Natural Numerals

下面的例子是在一本关于软件工程的书中。我无法理解这种态射如何将十进制数字转换为等效的自然数。它不只是将所有数字相加吗?


设0,1,2,3,4,5,6,7,8,9"somehow be"自然数从左到右分别对应小数位零、一、二、三、四、五、六、七、八、九;然后

type
    <NatNum> ::= <DecDig> | <DecDig> <NatNum>
    <DecDig> ::= zero | one | two | three | ... | nine


value
    M: <NatNum> -> Num
    M(d,n)≡10*M(d)+M(n)
    M(d)≡case d of zero->0,one->1,...,nine->9 end

非正式地解释自然数数字的含义


态射区分只是小数的自然数和小数与自然数的复合自然数。感谢您的帮助。

这实际上是:

n = 0
for digit in number:
    n = n * 10
    n = n + digit
return n