(2) can be further composed, whilst (1) just runs. But neither are exactly "functional" as Action
is not a function (compare with Func<A, R>
).
So with (2) you could do:
Fault(someAction, Fault(firstTryFaultHandler, lastDitchFaultHandler))();
...and get expected behavior. That doesn't work with (1)