Scheme Turtle 4

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Scheme</language>
===Nichtbinär-Baum===

Natürlich kann man sich diverse Verzweigungsvarianten überlegen und analog zu dem rekursiven Vorbild des klassischen Binärbaums umsetzen. Die folgende Prozedur zeigt ein Beispiel.
<eval>
(clear canvas)
(move turtle 200 190)

(define tree
 (lambda(side winkel) 
  (cond [(< side 20) #t] 
        [else  
          (penwidth turtle (+ (/ side 10) 1 ))    
          (forward turtle side)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (right turtle (* 4 winkel))  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (tree (/ side 2) winkel)  
          (left turtle winkel)  
          (backward turtle side)])))

(tree 100 25)
</eval>

<canvas></canvas>

[[Scheme Turtle 5]]