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.
This commit is contained in:
Simon Michael 2015-09-26 15:54:46 -10:00
parent 4326f88c26
commit 5048d3bf06
2 changed files with 6 additions and 0 deletions

View File

@ -37,6 +37,7 @@ module Hledger.Data.Posting (
joinAccountNames, joinAccountNames,
concatAccountNames, concatAccountNames,
accountNameApplyAliases, accountNameApplyAliases,
accountNameApplyAliasesMemo,
-- * arithmetic -- * arithmetic
sumPostings, sumPostings,
-- * rendering -- * rendering
@ -231,6 +232,10 @@ accountNameApplyAliases aliases a = accountNameWithPostingType atype aname'
aname aname
aliases aliases
-- | Memoising version of accountNameApplyAliases, maybe overkill.
accountNameApplyAliasesMemo :: [AccountAlias] -> AccountName -> AccountName
accountNameApplyAliasesMemo aliases = memo (accountNameApplyAliases aliases)
-- aliasMatches :: AccountAlias -> AccountName -> Bool -- aliasMatches :: AccountAlias -> AccountName -> Bool
-- aliasMatches (BasicAlias old _) a = old `isAccountNamePrefixOf` a -- aliasMatches (BasicAlias old _) a = old `isAccountNamePrefixOf` a
-- aliasMatches (RegexAlias re _) a = regexMatchesCI re a -- aliasMatches (RegexAlias re _) a = regexMatchesCI re a

View File

@ -664,6 +664,7 @@ modifiedaccountnamep = do
a <- accountnamep a <- accountnamep
return $ return $
accountNameApplyAliases aliases $ accountNameApplyAliases aliases $
-- XXX accountNameApplyAliasesMemo ? doesn't seem to make a difference
joinAccountNames parent joinAccountNames parent
a a