add binary tree l-system from wikipedia

This commit is contained in:
Scott Richmond 2024-06-24 18:59:39 -04:00
parent 88bc73cdbe
commit 6c8c667042

48
binary_tree.ld Normal file
View File

@ -0,0 +1,48 @@
& Example 2: fractal (binary) tree
& from https://en.wikipedia.org/wiki/L-system
box states = []
fn push! () -> {
update! (states, append (_, turtle_state ()))
}
fn pop! () -> {
let state = do states > unbox > last
update! (states, butlast)
penup! ()
load_turtle_state! (state)
}
fn branch! () -> {
pc! (colors :olive)
pw! (4)
fd! (20)
}
fn one! {
(0) -> {
branch! ()
}
(n) -> {
one! (dec (n))
one! (dec (n))
}
}
fn zero! {
(0) -> branch! ()
(n) -> {
one! (dec (n))
push! ()
lt! (inv (10))
zero! (dec (n))
pop! ()
rt! (inv (10))
zero! (dec (n))
}
}
zero! (7)
hideturtle! ()