Ho una funzione che desidera estrarre un valore da una mappa in base a un ordine prioritario. Attualmente lo sto facendo come struttura annidata se è orribile. Devo credere che ci sia un modo migliore.Clojure che estrae il valore dalla mappa in base alla logica prioritaria
Mentre questo funziona c'è un modo migliore?
(defn filter-relatives [relatives]
(if(contains? relatives :self)
(relatives :self)
(if(contains? relatives :north)
(relatives :north)
(if(contains? relatives :west)
(relatives :west)
(if(contains? relatives :east)
(relatives :east)
(relatives :south)
)
)
)
)
)
)
)
Questa è la risposta corretta. –
... a meno che non si voglia anche recuperare valori nulli. –
... o 'false'. Se si tratta di un problema, vedi la mia risposta per un adeguamento appropriato, altrimenti usa decisamente questo. –