LoginSignup
3
3

More than 5 years have passed since last update.

メソッド名に依らない再帰表現

Posted at
def 将来名前を変更する可能性が高く、再帰で階乗を計算するメソッド(x)
  (x == 1) ? 1 : x * 将来名前を変更する可能性が高く、再帰で階乗を計算するメソッド(x-1)
end

みたいな場合に、

def 将来名前を変更する可能性が高く、再帰で階乗を計算するメソッドの名前を変更しても中身を書き換えずに済む書き方をしたメソッド(x)
  recursion = lambda{|x| __send__(__method__, x)}
  (x == 1) ? 1 : x * recursion[x-1]
end

のように書くことでメソッド名に依らず再帰を表現できる。

のだけれども、メソッドごとにいちいち

recursion = lambda{|x| __send__(__method__, x)}

とか書くのも面倒くさいのでもっといい方法あれば教えてください


組み込みで__recursion__とか欲しい

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3