私は配列の左辺と右辺を計算する何らかの再帰をしています。私は作業コードを持っていますが、これをより簡潔に書くことができるのだろうかと思います。ここでは、コードは次のとおりです。配列の簡潔さ
left = calculate(x[0])
right = calculate(x[1])
a = Array.new(0)
a << left
a << right
self(a)
私は配列の左辺と右辺を計算する何らかの再帰をしています。私は作業コードを持っていますが、これをより簡潔に書くことができるのだろうかと思います。ここでは、コードは次のとおりです。配列の簡潔さ
left = calculate(x[0])
right = calculate(x[1])
a = Array.new(0)
a << left
a << right
self(a)
は、xが2つだけの要素を持っている場合、あなたは[0..1]
を省略することができ、この
self(x[0..1].map{|e| calculate(e)})
を試してみてください。
これは以下のように書くことができる
left = calculate(x[0])
right = calculate(x[1])
self([left, right])
あなたにもleft
とright
変数をインライン可能性があり、私はそれがコード少ない意図顕在になるだろうと思います。
self(x[0..1].map{|e| calculate(e)})
が
self(x[0..1].map(&method(:calculate)))
を書き換えることができますが、このよう3文字以上を費やしたが、e
は3文字以上だった場合、あなたは先になるだろう。