The two conventional alternatives to tandem recursion that come to mind are
- passing in the order of the Clifford algebra as an argument and testing for 0 at each lower level.
This is a cost in both time and code clutter.
- Testing the passed values to see if they are field elements (number?).
This makes difficult Clifford algebras based on fields that are not numbers, in Scheme’s sense.
With tandem recursion there are no tests to see if we are processing a field element.
Constructs such as C0, C1, basis etc must be ad-hod and probably obscure with conventional patterns.
Tandem recursion is reminiscent of traditional mathematical treatments leading thru natural numbers, integers, rationals, reals, complex, etc.