Suppose you get a value for totalOwed that doesnât seem right. You canât ask the JavaScript version âhow did you arrive at that number?â because those intermediate values have already been discarded. Imperative programs are generally debugged by adding log statements or stepping through with a debugger, pausing to check each value. This works fine when the number of intermediate values is small; it does not scale at all for the US Tax Code, where the final value is calculated based on hundreds upon hundreds of calculations of intermediate values.
XML is a Cheap DSL











