csys: rearrange code + comments

This commit is contained in:
Helmut Merz 2026-03-22 08:39:35 +01:00
parent ef80927de4
commit ff1183707a

View file

@ -37,28 +37,6 @@
(zero (make-neuron nil :proc eff-proc))) (zero (make-neuron nil :proc eff-proc)))
(setf (gethash '(:init :zero) (sensors *environment*)) (list zero)))) (setf (gethash '(:init :zero) (sensors *environment*)) (list zero))))
;;;; sensors: neurons receiving messages from environment, addressable via message head
(defun send-message (head data &key customer)
(send (message:create head :data data :customer customer)))
(defun send (msg)
(if (eq (shape:head-value msg :domain) :csys)
(dolist (sn (find-sensors msg))
(actor:send sn msg))
(core:handle-message core:*root* msg)))
(defun find-sensors (msg)
(let* ((key (cddr (shape:head msg)))
(sns (gethash key (sensors *environment*))))
(util:lgi key sns)
sns))
;;;; detectors: pseudo-neurons embedded in environment, addressable via message head
(defun do-log (msg state syns env)
(util:lgi msg))
;;;; neurons (= behavior factories) and synapses (connection factories) ;;;; neurons (= behavior factories) and synapses (connection factories)
(defun neuron (proc &optional state syns (env *environment*)) (defun neuron (proc &optional state syns (env *environment*))
@ -78,14 +56,35 @@
(defun update-neuron (proc state syns &optional (env *environment*)) (defun update-neuron (proc state syns &optional (env *environment*))
(actor:become (neuron proc state syns env))) (actor:become (neuron proc state syns env)))
;;;; predefined neuron processors and helper / utility funtions
(defun std-proc (msg state syns env) (defun std-proc (msg state syns env)
;(util:lgi msg state) ;(util:lgi msg state)
(destructuring-bind (nmsg nst nsyns) (destructuring-bind (nmsg nst nsyns)
(handle-action msg state syns env :default #'remember) (handle-action msg state syns env :default #'remember)
(forward nmsg nsyns) (forward nmsg nsyns)
(update-neuron #'std-proc nst nsyns env))) (update-neuron #'std-proc nst nsyns env)))
;;;; sensors: neurons receiving messages from environment, addressable via message head
(defun send-message (head data &key customer)
(send (message:create head :data data :customer customer)))
(defun send (msg)
(dolist (sn (find-sensors msg))
(actor:send sn msg)))
(defun find-sensors (msg)
(let* ((key (cddr (shape:head msg)))
(sns (gethash key (sensors *environment*))))
;(util:lgi key sns)
sns))
;;;; effectors: pseudo-neurons embedded in environment
(defun do-log (msg state syns env)
(util:lgi msg))
;;;; helper / utility funtions
(defun forward (msg syns) (defun forward (msg syns)
(dolist (s syns) (dolist (s syns)
@ -102,6 +101,7 @@
(list msg state syns)) (list msg state syns))
(defun remember (msg state syns env) (defun remember (msg state syns env)
;(list msg (make-neuron-state (shape:data msg) syns))
(list msg (shape:data msg) syns)) (list msg (shape:data msg) syns))
(defun create-sensor (msg state syns env) (defun create-sensor (msg state syns env)