SORU
4 Kasım 2009, ÇARŞAMBA


Eşleme Clojure bir harita değerleri üzerine bir fonksiyon

Fonksiyon değerleri için uygulanan ile aynı tuşları ile ama başka bir haritaya değerlerden birini göster dönüştürmek istiyorum. Clojure apı, bunu yapmak için bir işlevi olduğunu düşünüyorum, ama bulamıyor olmuştur.

İşte aradığım örnek bir uygulama

(defn map-function-on-map-vals [m f]
  (reduce (fn [altered-map [k v]] (assoc altered-map k (f v))) {} m))
(println (map-function-on-map-vals {:a "test" :b "testing"} #(.toUpperCase %)))
{:b TESTING, :a TEST}

Kimse yok mu map-function-on-map-vals zaten var biliyor mu? Bence çıktı (muhtemelen daha güzel bir isim de ben.

CEVAP
5 Kasım 2009, PERŞEMBE


reduce sürümü gayet iyiyim. Deyimsel bence. İşte bir sürüm liste üreteci kullanarak her neyse.

(defn foo [m f]
  (into {} (for [[k v] m] [k (f v)])))

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • knopik96

    knopik96

    7 Mayıs 2011
  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008