package documentation
Functional interface for trcks
.
This package provides functions for processing values of the following types in a functional style:
Example
This example uses the modules trcks.fp.composition
and trcks.fp.monads.result
to create and further process a value of type trcks.Result
:
>>> import math >>> from typing import Literal >>> from trcks import Result >>> from trcks.fp.composition import pipe >>> from trcks.fp.monads import result as r >>> GetSquareRootResult = Result[Literal["negative value"], float] >>> def get_square_root(x: float) -> GetSquareRootResult: ... return pipe( ... ( ... x, ... lambda xx: ... ("success", xx) ... if xx >= 0 ... else ("failure", "negative value"), ... r.map_success(math.sqrt), ... ) ... ) ... >>> get_square_root(25.0) ('success', 5.0) >>> get_square_root(-25.0) ('failure', 'negative value')
If your static type checker cannot infer the type of
the argument passed to trcks.fp.composition.pipe
,
you can explicitly assign a type:
>>> import math >>> from typing import Literal >>> from trcks import Result >>> from trcks.fp.composition import Pipeline2, pipe >>> from trcks.fp.monads import result as r >>> GetSquareRootResult = Result[Literal["negative value"], float] >>> def get_square_root(x: float) -> GetSquareRootResult: ... p: Pipeline2[float, GetSquareRootResult, GetSquareRootResult] = ( ... x, ... lambda xx: ... ("success", xx) ... if xx >= 0 ... else ("failure", "negative value"), ... r.map_success(math.sqrt), ... ) ... return pipe(p) ... >>> get_square_root(25.0) ('success', 5.0) >>> get_square_root(-25.0) ('failure', 'negative value')
Module | composition |
Types and higher order functions for function composition. |
Package | monads |
Monadic functions for generic types. |