I suppose most purely functional programming languages have feature to control side-effects in function, such like monads in Haskell, but Elm doesn't require such feature due to TEA. Moreover, I hear Nim is an impurely functional programming language but it separates func
and proc
by with/without side-effects.
Then, I have a question. Is there any list of programming languages categorized by can or can't control side-effect in function? If not, could you give me some names of languages? I will search for name and study how it work, but I'm glad you to write it simply if possible. Following is list I know languages which can control side-effects and its way:
- by monad
- Haskell
- PureScript
- Idris
- (After looking up some similar languages, I suppose Agda and Isabelle are included)
- by algebraic effects (I don't understand it well)
- Koka
- Eff
- by type
- Clean
- by syntax
- Nim -
proc
andfunc
- Nim -
In addition, please let me know documents about controlling side-effects in function if you know.