1
的PureAttribute documentation说:除了对代码合同没有“可见的副作用”之外,[Pure]是否有其他含义?
表示一个类型或方法是纯粹的,也就是说,它不会使任何可见的状态改变
难道这就是的唯一要求微软代码合同中的纯函数?
而且;这个模型是否假定异常是结果(而不是副作用)?
我问,因为,在更一般的上下文中,a pure function也意味着输出仅取决于输入;即。它不能是I/O或随机函数的结果。
有人可能会争辩说,一个纯函数总是产生一个外部表达式的值,可能与异常相反。
如果[Pure]的确限于限制性较弱的形式,是否有等价的“[FunctionalPure]”?
相关讨论:http://stackoverflow.com/questions/12335245/why-is-catching-an-exception-non-pure-but-throwing-an-exception-is-pure –
@ 500-InternalServerError谢谢 - 这是一个非常好的阅读。我没有从确定性(或缺乏)的角度来考虑它。 – user2864740