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

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007
  • theKGB65

    theKGB65

    24 Aralık 2007