Program: provide shortcuts for init / execution steps

This commit is contained in:
Helmut Merz 2026-06-21 22:09:24 +02:00
parent 7701030b0c
commit eb0954eeee

View file

@ -126,20 +126,29 @@ defmodule Scopes.Core.Program do
two = {:csys, :c00, "1-1"} two = {:csys, :c00, "1-1"}
three = {:csys, :s01, "1-1"} three = {:csys, :s01, "1-1"}
[ [
fn -> Environ.create(zero, addr: one, dir: :pred, step_create(zero, addr: one, dir: :pred, op: [Core.data_only(), negate()]),
op: [Core.data_only(), negate()]) end, step_create(one, addr: two, dir: :succ, op: Core.data_only()),
fn -> Environ.create(one, op: Core.data_only(), addr: two, dir: :succ) end, step_create(two, addr: three, dir: :pred),
fn -> Environ.create(two, addr: three, dir: :pred) end, step_connect(three, zero)
fn -> Environ.connect(three, zero) end
] ]
end end
def init_recursive_1() do def init_recursive_1() do
zero = {:csys, :c00, "0-0"} zero = {:csys, :c00, "0-0"}
[ [
fn -> Environ.create(zero, dir: :succ) end, step_create(zero, dir: :succ),
fn -> Environ.create(zero, addr: {:csys, :s01, "1-1"}, dir: :pred) end, step_create(zero, addr: {:csys, :s01, "1-1"}, dir: :pred),
fn -> Environ.connect(zero, zero, negate()) end step_connect(zero, zero, negate())
] ]
end end
# predefined init / execution steps
def step_create(addr, args) do
fn -> Environ.create(addr, args) end
end
def step_connect(addr, target, op \\ []) do
fn -> Environ.connect(addr, target, op) end
end
end end