验证列表的所有元素是否相等

jav*_*pie 4 equality list clojure

我有一个案例,我需要检查列表中的所有字符串元素是否相等,我试图弄清楚最惯用的解决方案是什么样的.我当前的方法是,将一个map元素应用于列表,检查每个元素是否等于第一个,然后使用'='减少结果布尔列表:

(def string-list '("3" "3" "3" "3" "3" "3"))
(reduce = (map #(.equals (first string-list) %) string-list))
Run Code Online (Sandbox Code Playgroud)

显然,这不是一个很好的解决方案.是否有更多的"clojure风格"解决方案,甚至更简单的方法,我还没有看到?

Sym*_*rog 14

您可以使用以下内容:

(apply = string-list)
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是,这会因空列表的数量异常而爆炸,因此为了安全起见,您可能需要首先进行非空检查。 (2认同)