neuron: with additional 'env' argument; basic functionality for testing probe OK

This commit is contained in:
Helmut Merz 2025-06-04 21:40:28 +02:00
parent 0865fa9e65
commit be91b6a446
2 changed files with 12 additions and 7 deletions

View file

@ -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)

View file

@ -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)
))