Hi Jim,
the Y combinator was fun, indeed.
Here is a two-argument version, as proposed by pixel in
http://lambda.weblogs.com/discuss/msgReader$838#842
p proc { |f,x| f[f,x] } [ proc { |f,n| n>1 ? n * f[f,n-1] : 1 }, 5 ]
Your's is more readable, though :)
Pit