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

  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • Kindness

    Kindness

    23 Ocak 2006
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011