Parallelverarbeitung
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
Die folgenden Aufgaben beziehen sich direkt auf die in der Vorlesung verwendete Linienführung und die vorgestellten Beispiele. Es empfiehlt sich also das Skript durchzuarbeiten, die Beispiele zu erproben und die folgenden Aufgaben an den passenden Stellen zu bearbeiten.
{|width="100%"
|-valign="top"
|width=600|<canvas width=600 height=300></canvas>||<eval>
(clear canvas1)
(home turtle1)
(define threaded-tree
(lambda (side turtle)
(cond
[(< side 5) (show turtle)]
[else
(sleep-for-a-while 0.8)
(forward turtle side)
(let ([t1 (clone turtle) [t2 (clone turtle)])
(left t1 45)
(right t2 45)
(thread (lambda () (threaded-tree (/ side 2) t1)))
(thread (lambda () (threaded-tree (/side 2) t2))))])))
(hide turtle1)
(threaded-tree 150 turtle1)
</eval>
|}