I have a complicated set of nested functions that essentially sanitize data.
Let's pretend I want to emit a firstname-lastname combination that's been sanitized, but the names are presented as two separate variables.
I realize I could simply emit each variable separately, wrapping each in the entire set of sanitizing functions, but that's both inelegant and dangerous: big chunks of hard-to-read, duplicate code that need to be kept in-sync over the lifetime of the app.
In a real language, I would write something like this:
${fn:trim(fn:replace(fn:replace(fn:replace(fn:replace(firstname + lastname, ..., ...), ..., ...), ..., ...), ..., ...))}
(Here, the plus represents a true-blue concatenation operator; javascript's '+', PHP's '.', etc.)
It also seems kind of absurd to use a separate statement to merely concatenate the variables beforehand.
Bottom line: this question has been asked a thousand times on the internet, but all the answers effectively dodge the question by proposing an alternative implementation. I want to know if this feature exists, and the documentation is worse than trivial.
Please, end my suffering and give me a straight answer.