我有一个函数想要根据优先顺序从 map 中提取一个值。目前,我正在做一个可怕的嵌套if结构。我必须相信有更好的方法。

虽然这有效,还有更好的方法吗?

(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)
                         )
                     )
                 )
              )
          )
    )
)

最佳答案

(some relatives [:self :north :west :east :south])

关于map - Clojure基于优先级逻辑从 map 中提取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9363411/

10-11 18:37