Clojurians
#clojure-italy
<
2017-05-04
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

reborg12:05:56

Ah buondi' comunque

helios14:05:02

buondi' a tutti

helios14:05:19

ci avrei fatto un pensierino, per lambdacon italia :stuck_out_tongue:

helios14:05:41

a meno che non la organizziamo noi!

helios14:05:56

(anche se qua mi sa che siamo piu' fuori che dentro italia :stuck_out_tongue: )

reborg15:05:48

Problema: ho una map "t" {:a 1, :b {:c "d", :d {:a 1}}, :c {:g {:g "i"}}, :d "d"}. Vorrei una (f t) che mi tira fuori tutti i percorsi possibili per raggiungere un valore nella map. Ad esempio: ([:a] [:b :c] [:b :d :a] [:c :g :g] [:d]) sono percorsi validi perche' se uso get-in di un qualunque di quei percorsi mi ritorna un valore. L'ho risolto, ma non sono contento di quello che ho trovato :disappointed:

bronsa15:05:35

(defn paths [m]
  (mapcat (fn [[k v]]
            (if (map? v)
              (for [path (paths v)]
                (into [k] path))
              [[k]]))
          m))

skuro15:05:15

con “valore” intendi uno scalare?

bronsa15:05:51

assumo intenda un qualsiasi valore non map

reborg15:05:10

si, la map puo' avere un'altra map come valore oppure no

reborg15:05:19

fammi provare...

reborg15:05:33

grande @bronsa :slightly_smiling_face:

reborg15:05:53

eh quell'(into [k]) e' un tocco da artista