任何编程语言的副作用都是所做的一切,它与提供的参数和返回的结果之间没有直接的关联.
(+ 3 4) ; ==> 7 (result is always a mapping between arguments and result. It will always be 7 no matte rhow many times you do it.
(rand-int 4) ; ==> 0,1,2, or 3. You have no idea what it will produce next.
Run Code Online (Sandbox Code Playgroud)
第一个表达是有效的.你可以用它的结果制作一个包含所有不同两个值的查找表,你就不会知道它们的区别.
第二种可能会为同一个论点提供不同的结果.计算必须基于其他内容,如内部状态,而不是单独的参数.它有副作用.
程序中使用的典型副作用是I/O和对象变异.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |