From 5048d3bf067a77183cf83b90cf6e89625514159d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 26 Sep 2015 15:54:46 -1000 Subject: [PATCH] lib: memoise accountNameApplyAliases too ? This adds a accountNameApplyAliasesMemo, which memoises the result of applying a set of aliases (simple and regex) to an account name. In theory this should reduce more repetitive work, but in practice it doesn't seem to make a difference, so it's unused for now. --- hledger-lib/Hledger/Data/Posting.hs | 5 +++++ hledger-lib/Hledger/Read/JournalReader.hs | 1 + 2 files changed, 6 insertions(+) diff --git a/hledger-lib/Hledger/Data/Posting.hs b/hledger-lib/Hledger/Data/Posting.hs index d69fad04d..d603e2ac9 100644 --- a/hledger-lib/Hledger/Data/Posting.hs +++ b/hledger-lib/Hledger/Data/Posting.hs @@ -37,6 +37,7 @@ module Hledger.Data.Posting ( joinAccountNames, concatAccountNames, accountNameApplyAliases, + accountNameApplyAliasesMemo, -- * arithmetic sumPostings, -- * rendering @@ -231,6 +232,10 @@ accountNameApplyAliases aliases a = accountNameWithPostingType atype aname' aname aliases +-- | Memoising version of accountNameApplyAliases, maybe overkill. +accountNameApplyAliasesMemo :: [AccountAlias] -> AccountName -> AccountName +accountNameApplyAliasesMemo aliases = memo (accountNameApplyAliases aliases) + -- aliasMatches :: AccountAlias -> AccountName -> Bool -- aliasMatches (BasicAlias old _) a = old `isAccountNamePrefixOf` a -- aliasMatches (RegexAlias re _) a = regexMatchesCI re a diff --git a/hledger-lib/Hledger/Read/JournalReader.hs b/hledger-lib/Hledger/Read/JournalReader.hs index 76c1b1663..a00d51839 100644 --- a/hledger-lib/Hledger/Read/JournalReader.hs +++ b/hledger-lib/Hledger/Read/JournalReader.hs @@ -664,6 +664,7 @@ modifiedaccountnamep = do a <- accountnamep return $ accountNameApplyAliases aliases $ + -- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference joinAccountNames parent a