python-effect / effect

effect isolation in Python, to facilitate more purely functional code
372 stars 16 forks source link

Support for async/await syntax #75

Open manishtomar opened 7 years ago

manishtomar commented 7 years ago

It will be cool to write effect code using async/await syntax introduced in PEP 492. For example, following code using do decorator:

@do
def eff_func():
   r1 = yield Effect(Intent1()) 
   r2 = yield Effect(Intent2(r1))
   yield do_return(r2)

can be written using async/await syntax as:

@do_async
async def eff_func():
   r1 = await Effect(Intent1()) 
   r2 = await Effect(Intent2(r1))
   return r2
radix commented 7 years ago

That's interesting, I didn't realize that it would be possible. I need to look in to how async/await in Python works, I haven't really looked at it.