plumbing.graph.positional

A compilation method for graphs that avoids maps for speed.

def-graph-record

(def-graph-record g)(def-graph-record g record-type-name)
Define a record for the output of a graph. It is usable as a function to be
as close to a map as possible. Return the typename.

eval-bound

(eval-bound form bindings)
Evaluate a form with some symbols bound to some values.

graph-form

(graph-form g arg-keywords)
Construct [body-form bindings-needed-for-eval] for a positional graph.

graph-let-bindings

(graph-let-bindings g g-value-syms)
Compute the bindings for functions and intermediates needed to form the body
of a positional graph, E.g.
  [`[[f-3 ~some-function]] `[[intermediate-3 (f-3 intermediate-1 intermediate-2)]]]

positional-flat-compile

(positional-flat-compile g)
Positional compile for a flat (non-nested) graph.