tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

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