The functional programming library you need
Project description
Haskellian
The functional programming library you need
pip install haskellian
Why
- Lazy imports + stub files -> great linting and 0 import time (thanks to
lazy-loader
) - Monadic, method chaining style
- Great typing and overloads
from haskellian import either as E, iter as I, promise as P, Pipe, asyn_iter as AI
Pipe[A]
(simplest monad ever)
Pipe('world hello') \
.f(str.title) \
.f(lambda s: s.split(' ')) \
.f(sorted) \
.f(', '.join) \
.value
# 'Hello, World'
Iter[A]
(generators made ergonomic)
I.Iter(range(100000000000)) \
.map(lambda x: 2*x) \
.filter(lambda x: x % 2 == 0) \
.batch(2) \
.tail()
#.sync() # don't recommend it...
# Iter([(4, 6), (8, 10), (12, 14), (16, 18), (20, 22), ...])
Promise[A]
(awaitables made ergonomic)
async def fetch_users() -> list[str]:
...
async def fetch_user(id) -> str:
...
await P.Promise(fetch_users()) \
.bind(lambda ids: P.all(map(fetch_user, ids))) \
.then(sorted)
AsyncIter[A]
, Either[L, R]
(self-explanatory at this point, right?)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for haskellian-0.3.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9982ba688d298ac2cb53be8807f290c3a5882488c6b566a2aa9c49d646fa1bc |
|
MD5 | ac80223bb39cb7bf2481ce73c522fa56 |
|
BLAKE2b-256 | c5d811f4b17de793152c6375e373f3a68428721453fb35be447f156d7dc70bcd |