Explicit State
declare Counter =
local C = {NewCell 0}
in
fun {$}
OldValue={Access C}
NewValue=OldValue + 1
in
{Assign C OldValue}
NewValue
end
end
{Show {Counter}} % 1
{Show {Counter}} % 2
Oz
(define counter
(let ((c 0))
(lambda ()
(let ((oldValue c)
(newValue
(+ oldValue 1))
(begin
(set! C newValue)
newValue))))
(counter) ;; 1
(counter) ;; 2
Scheme
Implicit State
Previous slide
Next slide
Back to first slide
View graphic version