diff options
author | Silvan Mosberger <silvan.mosberger@tweag.io> | 2023-07-14 18:28:38 +0200 |
---|---|---|
committer | Silvan Mosberger <silvan.mosberger@tweag.io> | 2023-07-14 19:36:46 +0200 |
commit | 9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54 (patch) | |
tree | d0d0b4e3fb927d00bc43a29ae4fee3d41388b3bf /lib/lists.nix | |
parent | bc8fbc25723b05e0f909faa6589641867200775b (diff) | |
download | nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar.gz nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar.bz2 nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar.lz nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar.xz nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.tar.zst nixpkgs-9fdc0bb2bfa2d1dd631bb39f3b9e7cfec16bcd54.zip |
lib.lists.removePrefix: init
Diffstat (limited to 'lib/lists.nix')
-rw-r--r-- | lib/lists.nix | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/lists.nix b/lib/lists.nix index e12bc9048ef..c9821819821 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -627,6 +627,25 @@ rec { list2: take (length list1) list2 == list1; + /* Remove the first list as a prefix from the second list. + Error if the first list isn't a prefix of the second list. + + Type: removePrefix :: [a] -> [a] -> [a] + + Example: + removePrefix [ 1 2 ] [ 1 2 3 4 ] + => [ 3 4 ] + removePrefix [ 0 1 ] [ 1 2 3 4 ] + => <error> + */ + removePrefix = + list1: + list2: + if hasPrefix list1 list2 then + drop (length list1) list2 + else + throw "lib.lists.removePrefix: First argument is not a list prefix of the second argument"; + /* Return a list consisting of at most `count` elements of `list`, starting at index `start`. |