Eşleme Clojure bir harita değerleri üzerine bir fonksiyon | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005