[ruby-de] yield - Ergebnisse als Array

Martin J. Dürst duerst at it.aoyama.ac.jp
Fr Jun 2 15:26:29 JST 2017



On 2017/06/01 22:04, Die Optimisten wrote:
> Hallo,
> 
> def alle(a,e,step, &block)
>    i=a
>    while i<=e
>      yield i
>      i=i+step
>    end
> end
> 
> 
> 
> alle(1,10,4) { |x| p x}    # => alle(1,10,4) { |x| x} ## Array
> 
> Wie erreiche ich, daß die yield-Ergebnisse [1,4,7,10] als Array -- ohne 
> print, also wie üblich mit {|x| x } -- ausgegeben wird ?
> 
> Kann man alle vereinfachen/kürzer machen?
> 
> danke
> Andreas

Ich empfehle Dir, folgendes auszuprobieren:

0.upto(3).map { |x| x*3+1 }

Du musst dann nur noch überlegen, wie Du die Argumente umrechnest.

Generell erhältst Du von upto und vielen anderen Iteratoren einen 
"Enumerator".

Gruß,    Martin.


Mehr Informationen über die Mailingliste ruby-de