Tengo una función que desea extraer un valor de un mapa en función de un orden priorizado. Actualmente lo estoy haciendo como una estructura anidada que es horrible. Tengo que creer que hay una mejor manera.Clojure extrae el valor del mapa según la lógica priorizada
Mientras esto funciona, ¿hay una mejor manera?
(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)
)
)
)
)
)
)
)
Esta es la respuesta correcta. –
... a menos que también desee obtener valores nulos. –
... o 'falso'. Si se trata de un problema, consulte mi respuesta para un ajuste apropiado; de lo contrario, definitivamente use este. –