diff --git a/csys.lisp b/csys.lisp index 295d468..1b60291 100644 --- a/csys.lisp +++ b/csys.lisp @@ -8,9 +8,9 @@ (in-package :decons/csys) -(defun neuron (proc &key state syns) +(defun neuron (proc &key state syns env) (actor:create - (lambda (msg) (funcall proc msg state syns)))) + (lambda (msg) (funcall proc msg state syns env)))) (defun synapse (rcvr &optional (op #'identity)) (lambda (msg) diff --git a/test-csys.lisp b/test-csys.lisp index 0f6ea88..68a7036 100644 --- a/test-csys.lisp +++ b/test-csys.lisp @@ -2,13 +2,18 @@ (in-package :decons/test-decons) -(defun probe (msg state syns) - (let ((t:*test-suite* state)) - (== (actor:content msg) 42))) +(defun probe (msg state syns env) + (let ((t:*test-suite* env)) + (== (actor:content msg) (pop state)) + (lambda (msg) (probe msg state syns env)) + )) (deftest test-neuron () - (let ((prb (csys:neuron #'probe :state t:*test-suite*))) + (let ((prb (csys:neuron #'probe + :state '(42 43) + :env t:*test-suite*))) (actor:send prb (actor:message 42)) - (sleep 0.2) + (actor:send prb (actor:message 43)) + (sleep 0.1) (actor:stop prb) ))