#!/usr/local/bin/sbcl --script (defun spawn(x) #'(lambda (request) (cond ((= 1 request) (setq x (+ x 1))) ((= 2 request) (setq x (- x 1))) (t x)))) (setq spawn1 (spawn 10) spawn2 (spawn 0)) (print (funcall spawn1 1)) (print (funcall spawn1 1)) (print (funcall spawn2 2)) (print (funcall spawn2 2)) (print (funcall spawn1 0)) (print (funcall spawn2 0))