コンビネータは変数を使わないっていう縛りがあるのか
まぁその考えはいいけど、
lambdaの再帰ではrecursionで置き換えだろこれは
所詮lambdaを使っている時点で見えない変数のオンパレード

100000回のループをさせたところ
user system total real
com 11.750000 0.344000 12.094000 ( 12.109375)
rec 2.250000 0.047000 2.297000 ( 2.296875)

お話にならない速度差がでたわ
はいYコンビネータ終了
lambdaの再帰はrecursionで置き換えられます