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 [ [ 3 4 ] ] 5 [ 6 [ 7 [ 8 [ 9 ]10 ] ]' ]+ ]fold echo
... [ dup
... ' join fold
... tuck = until ]
... echo
...
55
[ 1 2 3 4 5 6 7 8 9 ]
Stack empty.
 
/O> forward is flatten ( x --> [ )
... [ ' [ [ ] ] swap join
... ' [ dup nest? if
... flatten
... ' join fold]
... 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.
 
1,462

edits