Well, @pipeline actually had multiple problems. And it is now removed from dry-python.
It is actually imperative compared to declarative function composition. Why so? Because @pipeline is an partial implementation of do-notation, which is imperative by definition.
But. The difference is still visible.
Now exceptions can be visible in the funtion's signatire (let's use the same example from your post, even knowing that @pipeline is removed):
Well,
@pipeline
actually had multiple problems. And it is now removed fromdry-python
.It is actually imperative compared to declarative function composition. Why so? Because
@pipeline
is an partial implementation ofdo-notation
, which is imperative by definition.But. The difference is still visible.
@pipeline
is removed):Here it is! We know that something happens! And we can express it with types.
Result
s in development. See returns.readthedocs.io/en/latest/p...