lambdaway
::
fern
2
|
list
|
login
|
load
|
|
{svg {@ width="580" height="580" style="box-shadow:0 0 8px #000;"} {polyline {@ points="{turtle 380 350 180 {T}}" stroke="#888" fill="transparent"}} {polyline {@ points="{turtle 120 160 0 {F}}" stroke="#888" fill="transparent"}} } _h1 [[fractal_tree]] | fern | [[koch]] | [[stars]] _h2 1) defining functions {pre '{def tree {lambda {:s :n :a :b :c} {if {< :n 0} then else M:s T:a {tree {* :s :c} {- :n 1} :a :b :c} T-:a T-:b {tree {* :s :c} {- :n 1} :a :b :c} T:b M-:s}}} -> {def tree {lambda {:s :n :a :b :c} {if {< :n 0} then else M:s T:a {tree {* :s :c} {- :n 1} :a :b :c} T-:a T-:b {tree {* :s :c} {- :n 1} :a :b :c} T:b M-:s}}} '{def fern {lambda {:size :sign} {if {> :size 2} then M:size T{* 70 :sign} {fern {* :size 0.5} {- :sign}} T{* {- 70} :sign} M:size T{* {- 70} :sign} {fern {* :size 0.5} :sign} T{* 70 :sign} T{* 7 :sign} {fern {- :size 1} :sign} T{* {- 7} :sign} M{* -:size 2} else }}} -> {def fern {lambda {:size :sign} {if {> :size 2} then M:size T{* 70 :sign} {fern {* :size 0.5} {- :sign}} T{* {- 70} :sign} M:size T{* {- 70} :sign} {fern {* :size 0.5} :sign} T{* 70 :sign} T{* 7 :sign} {fern {- :size 1} :sign} T{* {- 7} :sign} M{* -:size 2} else }}} } _h2 2) building objects {pre '{def T {tree 100 10 30 45 0.7}} -> {def T {tree 100 10 30 45 0.7}} '{def F {fern 25 1}} -> {def F {fern 25 1}} } _h2 3) drawing {pre '{svg {@ width="580" height="580" style="box-shadow:0 0 8px #000;"} {polyline {@ points="{turtle 380 350 180 {T}}" stroke="#888" fill="transparent"}} {polyline {@ points="{turtle 120 160 0 {F}}" stroke="#888" fill="transparent"}} } }
lambdaway v.20211111