[ruby-de] yield - Ergebnisse als Array

Robert Klemme shortcutter at googlemail.com
Fr Jun 2 16:08:45 JST 2017


2017-06-02 8:26 GMT+02:00 Martin J. Dürst <duerst at it.aoyama.ac.jp>:

> On 2017/06/01 22:04, Die Optimisten wrote:

>> 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 ?

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

Es gibt eine bessere Variante für das hier präsentierte Problem.

> Du musst dann nur noch überlegen, wie Du die Argumente umrechnest.
>
> Generell erhältst Du von upto und vielen anderen Iteratoren einen
> "Enumerator".

Und das ist gut so!

Bis neulich

robert

-- 
[guy, jim, charlie].each {|him| remember.him do |as, often| as.you_can
- without end}
http://blog.rubybestpractices.com/


Mehr Informationen über die Mailingliste ruby-de