From 8cde342432f9031171ad2c52056213fae00d434d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 26 Jul 2019 23:24:09 +0100 Subject: [PATCH] tags: speedup: replace n^2 nub with n log n nubSort --- hledger/Hledger/Cli/Commands/Tags.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Tags.hs b/hledger/Hledger/Cli/Commands/Tags.hs index 87c6d7f05..b89ec42af 100755 --- a/hledger/Hledger/Cli/Commands/Tags.hs +++ b/hledger/Hledger/Cli/Commands/Tags.hs @@ -7,7 +7,7 @@ module Hledger.Cli.Commands.Tags ( ) where -import Data.List +import Data.List.Extra (nubSort) import qualified Data.Text as T import qualified Data.Text.IO as T import Safe @@ -33,7 +33,7 @@ tags CliOpts{rawopts_=rawopts,reportopts_=ropts} j = do q = queryFromOpts d $ ropts{query_ = unwords queryargs} txns = filter (q `matchesTransaction`) $ jtxns $ journalSelectingAmountFromOpts ropts j tagsorvalues = - nub $ sort $ + nubSort $ [if values then v else t | (t,v) <- concatMap transactionAllTags txns , maybe True (`regexMatchesCI` T.unpack t) mtagpat