git.iko.soy/typeable/attoparsec
on master help sign in
Update FastSet.hs
commit2e62d41e501d4c097be17da420d7d86912f30ab1 authorSeanRBurton <burton.seanr@gmail.com> dateMon 8 Dec 2014, 00:01 (12 years ago) parent96b60d6
1 file changed+7−3
Data/Attoparsec/Text/FastSet.hs+7−3
Data/Attoparsec/Text/FastSet.hs+7−3
@@ -32,7 +32,7 @@ module Data.Attoparsec.Text.FastSet
3232
3333import Data.Bits ((.|.), (.&.), shiftR)
3434import Data.Function (on)
35−import Data.List (sort, sortBy, foldl')
35+import Data.List (sort, sortBy)
3636import qualified Data.Array.Base as AB
3737import qualified Data.Array.Unboxed as A
3838import qualified Data.Text as T
@@ -92,8 +92,12 @@ fromList s = FastSet (AB.listArray (0, length interleaved - 1) interleaved)
9292 entries
9393
9494ordNub :: Eq a => [a] -> [a]
95−ordNub [] = []
96−ordNub (x:xs) = foldl' (\ys@(y:_) z -> if y == z then ys else z:ys) [x] xs
95+ordNub [] = []
96+ordNub (y:ys) = go y ys
97+ where go x (z:zs)
98+ | x == z = go x zs
99+ | otherwise = x : go z zs
100+ go x [] = [x]
97101
98102set :: T.Text -> FastSet
99103set = fromList . T.unpack