Higher-order functions: Difference between revisions
Content added Content deleted
(→{{header|Quackery}}: improved flattening a nest from O(n^2) to O(log n)) |
(→{{header|Quackery}}: simplified fold) |
||
Line 3,525: | Line 3,525: | ||
First define the higher order functions <code>fold</code>, <code>map</code>, and <code>filter</code>. |
First define the higher order functions <code>fold</code>, <code>map</code>, and <code>filter</code>. |
||
<pre> [ |
<pre> [ over [] = iff drop done |
||
dip |
|||
protect fold.act |
|||
⚫ | |||
⚫ | |||
[ fold.act put |
|||
⚫ | |||
[ dup [] = if done |
|||
⚫ | |||
⚫ | |||
[ fold.act share do ] ] |
|||
⚫ | |||
[ ' [ [ ] ] rot join swap |
[ ' [ [ ] ] rot join swap |
||
nested |
nested |
||
' [ nested join ] join |
' [ nested join ] join |
||
fold ] |
fold ] is map ( [ x --> [ ) |
||
[ ' [ [ ] ] rot join swap |
[ ' [ [ ] ] rot join swap |
||
Line 3,544: | Line 3,540: | ||
' [ iff [ nested join ] |
' [ iff [ nested join ] |
||
else drop ] join |
else drop ] join |
||
fold ] |
fold ] is filter ( [ x --> [ ) |
||
</pre> |
</pre> |
||