November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Należy wykonać iterację po ciągu łańcuchów zwiększających się alfabetycznie — w sposób podobny do iterowania po ciągu kolejnych liczb.
Jeśli znany jest początkowy i końcowy łańcuch z zakresu objętego iteracją, można do tego zakresu (reprezentowanego jako obiekt Range) zastosować metodę Range#each:
('aa'..'ag').each { |x| puts x }
# aa
# ab
# ac
# ad
# ae
# af
# ag
Metodą generującą następnik danego łańcucha jest String#succ. Jeśli nie jest znany łańcuch, na którym należy skończyć iterowanie, można na bazie tej metody zdefiniować iterację nieskończoną, którą przerwie się w momencie spełnienia określonego warunku:
def endless_string_succession(start) while true yield start start ...