Sierpinski curve: Difference between revisions

adding a new task
m (→‎{{header|Phix}}: syntax coloured, added online link)
(adding a new task)
Line 820:
)
</lang>
 
=={{header|Lambdatalk}}==
 
<lang Scheme>
{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°
}}}
 
Four curves drawn using the turtle promitive.
 
{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"}}
}
</lang>
 
See the result in http://lambdaway.free.fr/lambdawalks/?view=sierpinsky
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==