2016-04-09 35 views
0

Belirtimden bir liste yapmak istiyorum: (string * int) listesi ve tupller düzenlenebilir. Örneğin, yeni bir kayıt düzenisml listesinde bir düzenleme düzenleme

Şimdi
val gamma = [("a",20),("b",30),("c",40)] :(string*int) list 

, ben demet içinde değerini 30 nasıl değiştirebileceğinizi ("b",30) diyelim etmek için liste üzerinde map gerekir 70.

cevap

2

varsayalım ve inşa:

let 
    fun change key value (k, v) = 
    if k = key 
    then (k, value) 
    else (k, v) 

    val list = [("a",20),("b",30),("c",40)] 
in 
    List.map (change "b" 70) list 
end 
+0

Teşekkür ederiz! Sadece ihtiyaç duyulan şey bu. –

+0

Belirtimine sahip listeyi kullanarak bir tür veri yapısı oluşturmak istiyorum: (string * int) ilk öğenin anahtar olduğu ve ikinci elemanın değer olduğu liste. Öncelikle bu haritayı oluşturduğumda, hiçbir değeri olmayan anahtarı vermek istiyorum. Bu durumda boş değeri nasıl geçebilirim? Örneğin, başlatırken şu gibi bir şeye ihtiyacım var: val gamma = [("a", _), ("b", _), ("c", _)]: (string * int) listesi. –

+0

"_" ve "NONE" yazmayı denedim ama çalışmadılar. –