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

  • New Scientist

    New Scientis

    27 Kasım 2006
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011