At 11.07 +0200 2003-07-17, Joachim Schrod wrote: >XSLT is a write-only language when it comes to >implementing the "intermediate steps" above, that's no improvement to >TeX macro programming. It has poor semantics (like TeX, it's even >missing elementary boolean clauses), and its syntax is horrible to >read and thus maintenance is hard. TeX missing elementary boolean clauses? They're not there as primitives, but they are not hard to define as macros. In particular the part of docstrip that evaluates "guard expressions" provide an example of their implementation that is readily available in a nearby file system. Here is another take on the matter. A "boolean expression" is something which in the mouth expands to 0 or 1. The following take boolean expressions as arguments and may themselves be used as boolean expressions. \def\boolean@not#1{\if#10\expandafter1\else\expandafter0\fi} \def\boolean@implies#1#2{\if#10\expandafter1\else#2\fi} \def\boolean@and#1#2{\ifnum #1#2>10 \expandafter1\else\expandafter0\fi} \def\boolean@or#1#2{\ifnum #1#2>\z@ \expandafter1\else\expandafter0\fi} (The \expandafter commands are not necessary, but they help a bit with cleaning things up.) The tricky part is of course that not everything one might want to test (such as the existence of a file) can be done entirely with TeX primitives that expand in the mouth, but that is another matter. The TeX macro language as such is both powerful and elegant, even though it is also rather bizarre, but on the other hand one can say the same about lambda calculus. Contrary to the opinions commonly raised on this list the last two week, I don't think the TeX macro language is the weakest part of TeX, even though it could certainly do with some extensions for LaTeX (in areas such as command argument processing, keyval-style value assignments, and calc-style arithmetic). It is not surprising however that it is the part that is giving the *ML people the most trouble, and that probably accounts for most of the "bad press" it has been given. If you want to look at a part of TeX that is _weak_, then consider alignments. Lars Hellström