diff --git a/lib/core/environ.ex b/lib/core/environ.ex index bc31981..4269918 100644 --- a/lib/core/environ.ex +++ b/lib/core/environ.ex @@ -72,16 +72,19 @@ defmodule Scopes.Core.Environ do Core.send_message(rcvr, head, data) end - def send_value(addr, value) do - send_message(addr, ~w(csys data)a, %{value: value}) + def send_value(addr = {dom, _cat, _item}, value) do + send_message(addr, [dom, :data], %{value: value}) + end + + def create(addr = {dom, _cat, _item}, args \\ []) do + send_message(addr, [dom, :create], Map.new(args)) end def connect(addr = {dom, _cat, _item}, target, op \\ []) do - send_message(addr, [dom, :connect], - %{target: get_cell(target), op: op}) + send_message(addr, [dom, :connect], %{target: get_cell(target), op: op}) end - # delegating tasks to env + # delegating tasks to env (possibly obsolete) def delegate(env, func) do Core.send_message(env, {:exec, func}) diff --git a/lib/core/program.ex b/lib/core/program.ex index 8f1e68c..db29328 100644 --- a/lib/core/program.ex +++ b/lib/core/program.ex @@ -126,12 +126,10 @@ defmodule Scopes.Core.Program do two = {:csys, :c00, "1-1"} three = {:csys, :s01, "1-1"} [ - fn -> Environ.send_message(zero, ~w(csys create)a, - %{op: [Core.data_only(), negate()], addr: one, dir: :pred}) end, - fn -> Environ.send_message(one, ~w(csys create)a, - %{op: Core.data_only(), addr: two, dir: :succ}) end, - fn -> Environ.send_message(two, ~w(csys create)a, - %{addr: three, dir: :pred}) end, + fn -> Environ.create(zero, addr: one, dir: :pred, + op: [Core.data_only(), negate()]) end, + fn -> Environ.create(one, op: Core.data_only(), addr: two, dir: :succ) end, + fn -> Environ.create(two, addr: three, dir: :pred) end, fn -> Environ.connect(three, zero) end ] end @@ -139,9 +137,8 @@ defmodule Scopes.Core.Program do def init_recursive_1() do zero = {:csys, :c00, "0-0"} [ - fn -> Environ.send_message(zero, ~w(csys create)a, %{dir: :succ}) end, - fn -> Environ.send_message(zero, ~w(csys create)a, - %{addr: {:csys, :s01, "1-1"}, dir: :pred}) end, + fn -> Environ.create(zero, dir: :succ) end, + fn -> Environ.create(zero, addr: {:csys, :s01, "1-1"}, dir: :pred) end, fn -> Environ.connect(zero, zero, negate()) end ] end