lsystems.core

add-production

(add-production productions from to)
Add new production from keyword to list of keywords

bind-productions

macro

(bind-productions productions & exprs)
Bind productions in all following calls.
Should probably use `(let [step (step-with-productions productions)] ...)` instead.

combine-keywords

(combine-keywords & keywords)
Takes multiple keywords and combines them into one, e.g. (combine-keywords :a :b) -> :ab

keyword-name

(keyword-name keyword)
Get keyword name without the colon

new-productions

The productions are written as a hash map

nth-step

(nth-step productions state n)
Return the nth step using the productions and initial state

state-to-string

(state-to-string keywords)
Convert list of keywords, numbers, strings to a single string

step

(step productions state)
Return next iteration of state using the given productions

step-with-productions

(step-with-productions productions)
Bind step function to given productions

string-to-keywords

(string-to-keywords string)
Takes string of characters and turns them into keywords