Higher-order functions: Difference between revisions
→{{header|Quackery}}: improved flattening a nest from O(n^2) to O(log n)
(→{{header|Quackery}}: replaced my previous solution with one that defines map and filter in terms of fold) |
(→{{header|Quackery}}: improved flattening a nest from O(n^2) to O(log n)) |
||
Line 3,547:
</pre>
Then test them in the Quackery shell by summing a nest of numbers, recursively flattening a deeply nested nest, reversing every string in a nest of strings, and removing all the negative numbers from a nest of numbers.
<pre>/O> ' [ 1 2
... ' join fold▼
... echo▼
...
55
[ 1 2 3 4 5 6 7 8 9 ]▼
Stack empty.
/O> forward is flatten ( x --> [ )
... [ ' [ [ ] ] swap join
... ' [ dup nest? if
... flatten
... fold ] resolves flatten ( x --> [ )
...
Stack empty.
/O> ' [ 1 2 [ [ 3 4 ] ] 5 [ 6 [ 7 [ 8 [ 9 ] ] ] ] ] flatten
▲... echo
...
▲[ 1 2 3 4 5 6 7 8 9 ]
Stack empty.
|