reverse.scp (397B)
1 !export reverse 2 -- Reverse a list by delegating to the reusable fold and prepend workers. 3 -- Input: list; state: (folder, prepender) descriptors. The folder receives 4 -- this list with explicit (prepender, []) state. The work is tail-delegated: 5 -- unlike `call`, `become` does not use folder's stored initial state. 6 consumer reverse 7 xs @ (folder, prepender) => become folder xs @ (prepender, [])