> Multiplication can be considered iterated addition only when one of the numbers – the number measuring the degree of iteration – is pure. Adding five apples to itself three times makes 15 apples. But three apples or three oranges as a count for adding makes no sense.
Hm, I wonder what happens if you consider "times" or "iterations" a unit? I haven't thought this through but it feels like the edge of a deep insight. Playing fast and loose with units and iterations feels like Lisp. Being strict about it feels like Haskell.
> Multiplication can be considered iterated addition only when one of the numbers – the number measuring the degree of iteration – is pure. Adding five apples to itself three times makes 15 apples. But three apples or three oranges as a count for adding makes no sense.
Hm, I wonder what happens if you consider "times" or "iterations" a unit? I haven't thought this through but it feels like the edge of a deep insight. Playing fast and loose with units and iterations feels like Lisp. Being strict about it feels like Haskell.