Scheme Turtle 3
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
===Klassischer Binärbaum mit geklonten Turtles===
In diesem Beispiel entsteht der gleiche Baum wie im vorhergehenden. Allerdings wird die jeweils aktive Turtle an jeder Verzweigungsstelle geklont. D.h. der am Stammende jeweils links bzw. recht ansetzende Teilbaum wird von je einer neuen Turtle gezeichnet. Die agierenden Turtles entstehen durch Klonen der Turtle, die den Stamm des betreffenden Baums gezeichnet hat.
{|width="100%"
|-valign="top"
|width=500|<canvas width=500 height=300></canvas>||<code id="4b4062e1c47c4">
(define tree
(lambda(side turtle)
(cond
((< side 20) #t)
(else
(penwidth turtle (+ (/ side 10) 1 ))
(forward turtle side)
(left turtle 45)
(tree (/ side 2) (clone turtle))
(right turtle 90)
(tree (/ side 2) (clone turtle))
(left turtle 45)
(backward turtle side)))))
</code>
<eval id="4b4062e1c4f96">
(clear canvas)
(move turtle 200 190)
(tree 100 turtle)
</run>
|}
Ideen dieser Art werden in der Parallelprogrammierung behandelt. In unserem Beispiel findet eine nebenläufige Baumkonstruktion durch zeitlich parallel arbeitender Turtles statt.
[[Scheme Turtle 4]]