Eşlemeler
11 işlev. Her kaydın ne aldığı, ne verdiği ve çalışan örneği.
Değer döndürmez; haritadaki tüm çiftleri siler (harita yerinde boşalır).
Aynı harita nesnesi korunur, yalnız içi boşaltılır; ona tutan başka değişkenler de boş görür.
m = mapNew() mapPut(m, "a", 1) mapClear(m) plot(mapSize(m))
Bir çift yazılıp harita boşaltılır; boyut 0 çizilir.
Anahtar haritada varsa true, yoksa false.
Değerin na olması ile anahtarın hiç olmaması farklıdır; bu fonksiyon yalnız anahtarın varlığına bakar.
m = mapNew() mapPut(m, "a", 1) plot(iff(mapContains(m, "a"), 1, 0))
"a" anahtarı yazıldığı için 1 çizilir.
Kopya bağımsızdır — kopyaya yazmak aslını etkilemez. Yeni bir durum dalı denemek için kullanışlıdır.
a = mapNew() mapPut(a, "x", 1) b = mapCopy(a) mapPut(b, "y", 2) plot(mapSize(a))
Kopyaya yeni çift eklenir ama asıl harita bir çift tuttuğundan boyut 1 çizilir.
Anahtardaki değer; anahtar yoksa (ya da girdi harita değilse) na.
Var olmayan anahtar hata vermez, na döner — koşullar güvenle na üzerinde çalışır.
m = mapNew() mapPut(m, "tepe", highest(high, 20)) plot(mapGet(m, "tepe"))
20 barlık en yüksek seviyeyi "tepe" anahtarında saklar ve geri okuyup çizer.
Haritadaki anahtarları yazım sırasıyla taşıyan bir dizi.
Dizi eleman sayısını arraySize ile, elemanları dizi fonksiyonlarıyla dolaşabilirsin.
m = mapNew() mapPut(m, "a", 1) mapPut(m, "b", 2) plot(arraySize(mapKeys(m)))
İki anahtar yazılır; anahtar dizisinin uzunluğu 2 çizilir.
Harita anahtar→değer eşlemesi tutar; aynı anahtar tekrar yazıldığında eski değer ezilir. Değer olarak sayı, metin, mantıksal ya da seri saklanabilir.
m = mapNew() mapPut(m, "esik", 42) plot(iff(mapContains(m, "esik"), close, open))
Boş harita kurar, "esik" anahtarına 42 yazar; anahtar var olduğu için close çizilir.
mapPut(harita, anahtar, değer)
Anahtarda önceden duran değer; anahtar yoksa na. Harita yerinde değişir.
Anahtar zaten varsa değeri güncellenir ve eski değer döndürülür; yoksa yeni çift eklenir ve na döner.
m = mapNew() onceki = mapPut(m, "k", 10) mapPut(m, "k", 20) plot(mapGet(m, "k"))
"k" anahtarına önce 10, sonra 20 yazar; ilk yazımda önceki değer na'dır. Son değer 20 çizilir.
Değer döndürmez; harita2'deki tüm çiftleri harita1'e kopyalar (çakışan anahtarlar ezilir).
Yalnız hedef (harita1) değişir; kaynak (harita2) olduğu gibi kalır.
a = mapNew() mapPut(a, "x", 1) b = mapNew() mapPut(b, "y", 2) mapPutAll(a, b) plot(mapSize(a))
b'nin çifti a'ya eklenir; a artık iki çift tuttuğundan boyut 2 çizilir.
Silinen anahtarın değeri; anahtar yoksa na. Harita yerinde değişir.
Anahtar yoksa sessizce na döner, hata oluşmaz.
m = mapNew() mapPut(m, "a", 5) mapRemove(m, "a") plot(iff(mapContains(m, "a"), 1, 0))
"a" yazılıp hemen silinir; artık bulunmadığından 0 çizilir.
Haritadaki anahtar-değer çifti sayısı; girdi harita değilse 0.
Boş harita için 0 döner. Aynı anahtara tekrar yazmak boyutu artırmaz.
m = mapNew() mapPut(m, "a", 1) mapPut(m, "b", 2) plot(mapSize(m))
İki farklı anahtar yazılır; boyut 2 çizilir.
Haritadaki değerleri anahtar yazım sırasıyla taşıyan bir dizi.
Sayısal değerler için arraySum / arrayAvg gibi dizi fonksiyonlarıyla toplu işlem yapılabilir.
m = mapNew() mapPut(m, "a", 10) mapPut(m, "b", 20) plot(arraySum(mapValues(m)))
Değerler 10 ve 20; değer dizisinin toplamı 30 çizilir.