我理解像Haskell这样的纯函数式语言的吸引力,你可以使用monad跟踪磁盘I/O等副作用.
为什么不是所有系统调用都被视为副作用?例如,不跟踪Haskell中的堆内存分配(自动).堆栈分配可能是一个副作用,虽然我不确定它会有用.这两者都改变了系统的整体状态.
那么,为什么是副作用和什么不是副作用绘制线?它只是在最"有用"的地方吗?还是有更多的理论基础?
monads haskell functional-programming side-effects
functional-programming ×1
haskell ×1
monads ×1
side-effects ×1