On Sun, Jun 20, 2021 at 12:11:50AM -0000, Christophe Marchand
cmarchand(_at_)oxiane(_dot_)com scripsit:
All the responses given by Eliot and Liam respect Clean Code[1] best
practises. Many principles must be respected if you expect your code may
evolve :
I think this is one of those places where the imperative best practise
and the declarative best practise aren't perfectly congruent.
If you've got a global variable that provides part of the transform
context -- the big map of what the known languages use for quotation
marks, commas, and colons, say -- I think it's quite entirely harmless
to reference that from inside a function. The testing should be looking
at the list of names in the map and making sure the expected names are
defined for each language, but presence of a transform context with
global constants -- how many of whatever to the EMU, how many points to
the inch, etc. -- is conceptually like amending the static context by
importing module functions. I don't think it's harmful to use global
variables in this way.
(It does make me hope XSLT 4 allows
<xsl:variable name="bigLookup" as="map(*)">
<xsl:map>
....
</xsl:map>
</xsl:variable>
to be declared static.)
--
Graydon Saunders | graydonish(_at_)gmail(_dot_)com
Þæs oferéode, ðisses swá mæg.
-- Deor ("That passed, so may this.")
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--