stripPrefix.scp (524B)
1 !export stripPrefix 2 -- Remove an exact prefix from a list, preserving the remaining suffix. 3 -- Input: target list; state: prefix list. Returns stem suffix on success 4 -- (including stem [] for an exact match), or leaf when target ends early 5 -- or an element differs. It tests equality of elements, not string paths. 6 consumer stripPrefix 7 xs @ [] => stem xs -- empty prefix matches any target 8 [] @ [p | ps] => leaf -- prefix still has elements 9 [x | xs] @ [p | ps] => choose equal x p recur xs @ ps leaf