From eb0954eeee6bb528beb4cf9bab4111245c58bdcf Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 21 Jun 2026 22:09:24 +0200 Subject: [PATCH] Program: provide shortcuts for init / execution steps --- lib/core/program.ex | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/core/program.ex b/lib/core/program.ex index db29328..e7a7a71 100644 --- a/lib/core/program.ex +++ b/lib/core/program.ex @@ -126,20 +126,29 @@ defmodule Scopes.Core.Program do two = {:csys, :c00, "1-1"} three = {:csys, :s01, "1-1"} [ - 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 + step_create(zero, addr: one, dir: :pred, op: [Core.data_only(), negate()]), + step_create(one, addr: two, dir: :succ, op: Core.data_only()), + step_create(two, addr: three, dir: :pred), + step_connect(three, zero) ] end def init_recursive_1() do zero = {:csys, :c00, "0-0"} [ - 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 + step_create(zero, dir: :succ), + step_create(zero, addr: {:csys, :s01, "1-1"}, dir: :pred), + step_connect(zero, zero, negate()) ] 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