SKIコンビネータでSKK = I(Ruby版)そのさん
関数適用の演算子をProcクラスに追加してみました。とりあえずこんなところにしておこうと思います。
def nlambda(n, xs = [], &f) if n <= 0 f[*xs] else lambda {|x| nlambda(n - 1, xs + [x], &f) } end end class Proc def *(x) self[x] end end I = nlambda(1) {|x | x } K = nlambda(2) {|x, y | x } S = nlambda(3) {|x, y, z| x[z][y[z]] } p S * K * K * 100 == I * 100 # => true