From b7e304433a230fb45407ec106e8cc72b600bc45e Mon Sep 17 00:00:00 2001 From: Frederic Date: Sun, 7 Jul 2019 12:54:08 +0200 Subject: [PATCH] add support for functions in production rules --- lindenmayer-system/lindenmeyer-system.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lindenmayer-system/lindenmeyer-system.js b/lindenmayer-system/lindenmeyer-system.js index 11310c0..23e29a6 100644 --- a/lindenmayer-system/lindenmeyer-system.js +++ b/lindenmayer-system/lindenmeyer-system.js @@ -20,7 +20,13 @@ function generate(start, rules, iterations) { while(pos < start.length) { let w = start.slice(pos, pos + rule[0].length); if(startswith(w, rule[0])) { - start.splice(pos, rule[0].length, rule[1]) + var ruleres; + if(typeof rule[1] == 'function') { + ruleres = rule[1](); + } else { + ruleres = rule[1]; + } + start.splice(pos, rule[0].length, ruleres) pos += rule[0].length; } else { pos += 1;