From b5f78355fe4ac2821aed20a74796d857ae7ddf9a Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Tue, 19 May 2026 17:06:24 +0200 Subject: [PATCH] csys: automatically compose op list for synapses --- lib/csys/csys.ex | 1 + test/csys_test.exs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/csys/csys.ex b/lib/csys/csys.ex index ee76c68..d7f42f1 100644 --- a/lib/csys/csys.ex +++ b/lib/csys/csys.ex @@ -14,6 +14,7 @@ defmodule Scopes.CSys do end def synapse(rcvr, op, delay \\ 0) do + op = is_list(op) && compose(op) || op fn msg -> Actor.send(rcvr, op.(msg), delay) end end diff --git a/test/csys_test.exs b/test/csys_test.exs index 1f146d6..4bbdee8 100644 --- a/test/csys_test.exs +++ b/test/csys_test.exs @@ -28,7 +28,7 @@ defmodule Scopes.CSysTest do assert 0 = receive_data().value #CSys.send_message(zero, [:csys, :create, :pred], %{op: neg_only()}) CSys.send_message(zero, [:csys, :create, :pred], - %{op: CSys.compose([CSys.data_only(), Program.negate()])}) + %{op: [CSys.data_only(), Program.negate()]}) one = receive_data([:csys, :created]).new CSys.send_message(one, [:csys, :create, :succ], %{op: CSys.data_only()}) two = receive_data([:csys, :created]).new