summaryrefslogtreecommitdiff
path: root/Utility/Split.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Split.hs')
-rw-r--r--Utility/Split.hs11
1 files changed, 10 insertions, 1 deletions
diff --git a/Utility/Split.hs b/Utility/Split.hs
index decfe7d..028218e 100644
--- a/Utility/Split.hs
+++ b/Utility/Split.hs
@@ -7,7 +7,12 @@
{-# OPTIONS_GHC -fno-warn-tabs #-}
-module Utility.Split where
+module Utility.Split (
+ split,
+ splitc,
+ replace,
+ dropFromEnd,
+) where
import Data.List (intercalate)
import Data.List.Split (splitOn)
@@ -28,3 +33,7 @@ splitc c s = case break (== c) s of
-- | same as Data.List.Utils.replace
replace :: Eq a => [a] -> [a] -> [a] -> [a]
replace old new = intercalate new . split old
+
+-- | Only traverses the list once while dropping the last n items.
+dropFromEnd :: Int -> [a] -> [a]
+dropFromEnd n l = zipWith const l (drop n l)