Vypadá to jako zajímavý jazyk. Ale rád bych si ještě upřesnil pár detailů :
- dá se definovat pole, kterému některé prvky chybí ?
Např. a=['p','o',,,'l','e']
čemu se ppak rovnají neexistující prvky ? Nil ?
- co se stane, pokud se inicializuje prvek "daleko" mimo současné rozmezí ?
Např a[10]="x"
- když se indexy počítají od 0, co mi vrátí a.index, pokud hledaný prvek není součástí pole ? -1 ?
- co přesně znamená "kontrola mezí indexů" ? Už článek zmiňuje případ, kdy se přidá prvek zapsáním na dosud neexistující pozici, takže to mi není úplně jasné.
- v kapitole o regulárních výrazech vypadá výraz pro test data nevěrohodně. Mám dojem, že by "prošly" i :
.1.2000
1.0.0000
111.111.2002
Jinak díky za perfektní článek. Tento jazyk je docela šikovný a určitě se časem rozšíří.
Odpovím také příklady:
irb(main):002:0> a=['a',nil,nil,'b']
["a", nil, nil, "b"]
irb(main):003:0> a[10]='c'
"c"
irb(main):004:0> a
["a", nil, nil, "b", nil, nil, nil, nil, nil, nil, "c"]
irb(main):005:0> a.index 'k'
nil
Metoda compact odtsraňuje nil prvky z pole:
irb(main):006:0> a.compact
["a", "b", "c"]
irb(main):007:0> a.compact[2]
"c"
Kontrola indexů možná není šťastný termín. Měl jsem na mysli právě automatické přizpůsobení pole a vracení nil při překročení mezí.
Ten regulární výraz není dokonalý - je to spíše ilustrace. Nicméně trojciferný den nebo měsíc by neprošel.