Continuing my reading up on Lambda calculus and related matters, I've now gotten to the Combinatory logic (http://en.wikipedia.org/wiki/Combinatory_logic), which also turns out to be much easier to understand when one transcribes the whole thing into LaTeX macros. :-) In particular, there are \cs_new:Npn \combinator_I:n #1 { #1 } % AKA \use_i:n \cs_new:Npn \combinator_K:nn #1 #2 { #1 } % AKA \use_i:nn \cs_new:Npn \combinator_S:nnn #1 #2 #3 { #1{#3}{ #2{#3} } } \cs_new:Npn \combinator_B:nnn #1 #2 #3 { #1{ #2{#3} } } \cs_new:Npn \combinator_C:nnn #1 #2 #3 { #1{#3}{#2} } My thought with this mail is mainly to ask whether there are any more of these (or other standard combinators) that are defined in LaTeX3 already. I seem to recall some discussion to the effect that the C combinator might be named \use_i_biii_bii:nnn, but I haven't seen any occurrence in the source of such _bii_ names (then again, maybe I'm not looking close enough). Continuing such a naming scheme, one would arrive at maybe \use_i_biibiii:nnn for the B combinator \use_i_biii_biibiii:nnn for the S combinator which does not seem entirely practical... David Carlisle mentioned in the Church booleans thread that http://www.ctan.org/tex-archive/macros/plain/contrib/lambda provides what amounts to the B and C combinators under the (so far most comprehensible) names \Compose and \Twiddle respectively. It doesn't provide the S combinator up front, but rather \cs_new:Npn \Lift #1 #2 #3 #4 { #1{#4} {#2} {#3} {#4} } the primary intent for which is that #1{#4} should behave as a Church boolean, and thus select whether to apply #2 or #3 to the second #4. I suspect \Lift, \Twiddle, \Compose, and maybe some additional macro could be combined into an S combinator, but it is not immediately clear to me how. (Reading that lambda.tex, I'm surprised that not more of it made it into fontinst -- both projects having the same original author -- but three years was a lot of time in TeX history, back then.) Somewhat relatedly, it occurs to me that the process of converting lambda-terms to combinator formulae /might/ be the beginning of an approach to having "named command parameters" in (high-level) LaTeX without radical modifications of the TeX engine -- the idea being that the named parameters are (upon macro definition) removed from the replacement text as a matter of lambda elimination (conversion of a lambda term to an equivalent combinatorial term). Whether that would be practical is of course an entirely different matter. ;-) Lars Hellström