Пето предизвикателство

  1. Имам нужда от малко уточнение на едно от условията:

    В този случай, върнатата стойност от split_up не се променя по никакъв начин.

    Да предположим, че извикаме:

    1.upto(5).split_up(length: 2) { |slice| slice << :! }
    

    Какво получаваме тогава? Аз бих казал [[1, 2, :!], [3, 4, :!], [5, :!]], но това все пак си е промяна. =]

  2. И от мен един въпрос: извинявам се предварително, ако аз не съм догледала нещо, но ми се струва, че в единия от примерите, които сте дали, май има малка неточност.

    1.upto(10).split_up(length: 2, step: 3, pad: [:a, :b, :c])
    => [[1, 2], [4, 5], [7, 8], [10, :a]]
    

    Не трябва ли да върне [[1, 2], [4, 5], [7, 8], [10, :a], [:c]]?

  3. @Аделина, не, примерът е коректен. Така трябва да работи вашата имплементация, т.е. да допълва само евентуалните липсващи елементи в последния слайс на списъка.

    P.S. Използвай Markdown. Редактирал съм ти мнението, за да добавя форматиране. Влез в "Редакция" и виж какъв синтаксис съм ползвал.

  4. @Ангел Венчев, в условието е написано, че length: е задължителен keyword аргумент. Съответно, ако не го подадеш, ще си изгърми с ArgumentError.

    @Александър Тахчиев, празен списък.

    [].split_up(length: 2) # []
    

Трябва да сте влезли в системата, за да може да отговаряте на теми.