İksirde Haritalarımız var:
> map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"}
> map.a # = "one"
> map[:a] # = "one"
Ayrıca Anahtar Kelime Listelerimiz de var:
> kl = [a: "one", b: "two"] # = [a: "one", b: "two"]
> kl2 = [{:a, "one"},{:b, "two"}] # = [a: "one", b: "two"]
> kl == kl2 # = true
> kl[:a] # = "one"
> kl.a # = ** (ArgumentError)
Neden ikisi birden?
Sözdizimi? Bunun nedeni, Anahtar Sözcük Listelerinin kıvrımsız ve hatta bir işlev çağrısının son parametresi olarak köşeli parantezler olmadan tanımlanmalarına izin veren daha esnek bir sözdizimine sahip olması mıdır? Öyleyse neden Haritalar'a bu sözdizimsel şekeri vermiyorsunuz?
Yinelenen Anahtarlar? Bunun nedeni Anahtar Kelime Listelerinin yinelenen anahtarlara sahip olabilmesinden mi? Neden hem Harita stili erişim hem de yinelenen anahtarlar istiyorsunuz?
Verim? Bunun nedeni Anahtar Kelime Listelerinin daha iyi performans göstermesi mi? Öyleyse neden Haritalar var? Ve haritalar, üyeleri anahtara göre aramada tuple listesinden daha başarılı olmamalı mı?
JS Dizisi ve Ruby Hash gibi bir görünüm? Öyle mi?
Yapısal olarak farklı veri temsilleri olduklarını anlıyorum. Bana göre iksirdeki Anahtar Kelime Listeleri, istisnai sözdizimi (3 farklı sözdizimsel varyant), kullanım durumu haritalarla örtüşme ve belirsiz bir fayda yoluyla dili karmaşıklaştırmaya hizmet ediyor gibi görünüyor.
Anahtar Kelime Listelerini kullanmanın faydası nedir?