How to resolve the algorithm Sierpinski triangle step by step in the Lambdatalk programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Sierpinski triangle step by step in the Lambdatalk programming language

Table of Contents

Problem Statement

Produce an ASCII representation of a Sierpinski triangle of order   N.

The Sierpinski triangle of order   4   should look like this:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Sierpinski triangle step by step in the Lambdatalk programming language

Source code in the lambdatalk programming language

{def sierp
 {def sierp.r
  {lambda {:order :length :angle} 
   {if {= :order 0}
    then M:length                            // move :length
    else {sierp.r {- :order 1}               // recurse
                  {/ :length 2}
                  {- :angle}}
         T:angle                             // turn :angle
         {sierp.r {- :order 1}               // recurse
                  {/ :length 2} 
                  {+ :angle}}
         T:angle                             // turn :angle
         {sierp.r {- :order 1}               // recurse
                  {/ :length 2} 
                  {- :angle}}
 }}}
 {lambda {:order :length}
  {if {= {% :order 2} 0}                     // if :order is even
   then {sierp.r :order :length 60}          // recurse with 60°
   else T60                                  // else turn 60°
        {sierp.r :order :length -60}         // recurse with -60°
}}}
-> sierp


{svg {@ width="580" height="580" style="box-shadow:0 0 8px #000;"}
 {polyline  {@ points="{turtle 50 5 0 {sierp 1 570}}"  
               stroke="#ccc" fill="transparent" stroke-width="7"}}
 {polyline  {@ points="{turtle 50 5 0 {sierp 3 570}}"  
               stroke="#8ff" fill="transparent" stroke-width="5"}}
 {polyline  {@ points="{turtle 50 5 0 {sierp 5 570}}"  
               stroke="#f88" fill="transparent" stroke-width="3"}}
 {polyline  {@ points="{turtle 50 5 0 {sierp 7 570}}"  
               stroke="#000" fill="transparent" stroke-width="1"}}


  

You may also check:How to resolve the algorithm Galton box animation step by step in the Wren programming language
You may also check:How to resolve the algorithm Currying step by step in the BQN programming language
You may also check:How to resolve the algorithm Short-circuit evaluation step by step in the Lua programming language
You may also check:How to resolve the algorithm Bitmap/Bézier curves/Cubic step by step in the Racket programming language
You may also check:How to resolve the algorithm Average loop length step by step in the Simula programming language