例えば、これはlambdaの再帰をする関数です

def  recursion  *h
    @vvv  =  lambda  do  |*h|  yield  *h  end  if  iterator?
    @vvv[*h]
end

a=recursion  6  do  |  n  |
    if  n  ==  0
        1
    else
        n  *  recursion(n  -  1) 
    end
end
p  a

この@vvvはスタティック変数であって欲しいが、rubyには存在しない為、
メンバ変数を拝借してる
この@vvvを綺麗になくす事は出来る、ただしなくそうとするとおよそ数十行の特殊な術式を書かなければならなくなる
基本的に、誰もそんなものを書いたりはしないので結局は以下のようになる