2012-03-08 5 views
0

私は配列の左辺と右辺を計算する何らかの再帰をしています。私は作業コードを持っていますが、これをより簡潔に書くことができるのだろうかと思います。ここでは、コードは次のとおりです。配列の簡潔さ

left = calculate(x[0]) 
right = calculate(x[1]) 
a = Array.new(0) 
a << left 
a << right 
self(a) 

答えて

3

は、xが2つだけの要素を持っている場合、あなたは[0..1]を省略することができ、この

self(x[0..1].map{|e| calculate(e)}) 

を試してみてください。

2

これは以下のように書くことができる

left = calculate(x[0]) 
right = calculate(x[1]) 
self([left, right]) 

あなたにもleftright変数をインライン可能性があり、私はそれがコード少ない意図顕在になるだろうと思います。

1
self(x[0..1].map{|e| calculate(e)}) 

self(x[0..1].map(&method(:calculate))) 

を書き換えることができますが、このよう3文字以上を費やしたが、eは3文字以上だった場合、あなたは先になるだろう。

関連する問題