The two conventional alternatives to tandem recursion that come to mind are
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.
- 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.