point free procedure composition
<p>Suppose I have two procedures <code>p1</code> and <code>p2</code> on the stack and I want to consume them and leave on the stack a new procedure that combines their effects. I would like a procedure to do this.  This is easy enough if I am always willing to do a little dictionary bookkeeping.  But can I do it without introducing any names? (Note that I want the resulting procedure, not just to execute the combined effects on the current stack.)</p>

<p>Consider for example</p>

<pre><code>/compose {&lt;&lt; /f1 4 2 roll /f2 exch &gt;&gt;begin {f1 f2} end}bind def
</code></pre>

<p>This won't work of course because f1 and f2 will be unknown after <code>end</code>.  But this broken code should illustrate what I'm after.</p>