[Ruby] Вопрос по итераторам

Dennis Vshivkov walrus на amur.ru
Пт Дек 3 17:38:25 MSK 2004


On Sat, Dec 04, 2004 at 03:33:58AM +1300, Dennis Vshivkov wrote:

[skipped]

 > Ну вот, например. Видимость отсутствия перехода в начало цикла. Не
 > знаю, насколько это красиво... :)

 > #!/usr/bin/ruby
 > out = []
 > %w(a b b1 b2 c d).inject(false) { |skip, i|
 >   out.clear unless skip

 >   if i == 'b' || !out.empty? && i[0] == ?b
 >     out.push i
 >     next true
 >   end

 >   unless out.empty?
 >     # out готов
 >     puts out.join(' ')
 >     out.clear
 >   end

 >   out.push i

 >   # out готов
 >   puts out.push(i).join(' ')
 > }

    Добавим красоты и исправим ошибку. =)

#!/usr/bin/ruby
out = []
%w(a b b1 b2 c d).inject(false) { |skip, i|
  out.clear unless skip

  next out.push(i) if i == 'b' || !out.empty? && i[0] == ?b

  unless out.empty?
    puts out.join(' ')
    out.clear
  end

  puts out.push(i).join(' ')
}

-- 
/Awesome Walrus <walrus на amur.ru>
                                 ...Не помнить старого зла -- это лекарство...


Подробная информация о списке рассылки Ruby