Shoelace formula for polygonal area: Difference between revisions
Content added Content deleted
(Add min) |
|||
Line 736: | Line 736: | ||
{{out}} |
{{out}} |
||
<pre>30</pre> |
<pre>30</pre> |
||
=={{header|min}}== |
|||
{{works with|min|0.19.3}} |
|||
<lang min>((((first) map) ((last) map)) cleave) :dezip |
|||
(((first) (rest)) cleave append) :rotate |
|||
((0 <) (-1 *) when) :abs |
|||
( |
|||
=b =a a size :n 0 :i () =list |
|||
(i n <) ( |
|||
a i get b i get ' prepend list append #list |
|||
i succ @i |
|||
) while list |
|||
) :rezip |
|||
(rezip (-> *) map sum) :cross-sum |
|||
( |
|||
((dezip rotate) (dezip swap rotate)) cleave |
|||
((id) (cross-sum) (id) (cross-sum)) spread |
|||
- abs 2 / |
|||
) :shoelace |
|||
((3 4) (5 11) (12 8) (9 5) (5 6)) shoelace print</lang> |
|||
{{out}} |
|||
<pre> |
|||
30.0 |
|||
</pre> |
|||
=={{header|Modula-2}}== |
=={{header|Modula-2}}== |