I hear they are good, make it easier to maintain code-bases. Most often I reach for python to get the job done. Does anyone have experiences with functional languages for larger projects?
In particular I am interested to learn more on how to handle databases, and writing to them and what patterns they come up with. Is a database handle you can write to not … basically mutable state, the arch-nemesis of functional languages?
Are functional languages only useful with an imperative shell?


At least in Haskell due to lazyness this is (almost) always what happens. A monad is just one kind of deferred computation, with an operator
>>=(“bind”) that happens to prevent compiler reordering or deduplication. Any IO actions are only executed whenmainis evaluated and no earlier. Strict functional languages to my knowledge don’t need monads to do IO since they don’t have the same issues with evaluation order that Haskell does (though they might want them for type safety purposes).