AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
Haskell
Another way of handling state in purely functional immutable languages are monads. A monad has nothing to do with concurrency, right? So you can't use the same construct for the two different jobs in Haskell. Also, it's while there are libraries for closure, I think the concept is much more powerful in a language like Haskell where the type system is helping a lot.