小智 6
最简单的方法可能是存储一些外部状态,并且f的实现会影响它的内容.
(define x 0)
(define (f n) (let ((tmp x)) (set! x n) tmp))
Run Code Online (Sandbox Code Playgroud)
因此,x最初为0,每次对f的调用都将返回x的当前值,并将参数保存为x的新值.因此,(f 0)后跟(f 1)将返回0,最终x值为1.而评估(f 1)后跟(f 0)将产生0然后是1,最终x为0.
| 归档时间: |
|
| 查看次数: |
9383 次 |
| 最近记录: |