如何解决在Clojure中,我不了解condp vs case
起初,它是写以防万一。
(ns test
(:import (clojure.lang Keyword)))
(defn who-are-you [input]
(case (type input)
String "String - Who are you?"
Keyword "Keyword - Who are you?"
Long "Number - Who are you?"))
(defn -main []
(println (who-are-you :alice)
(who-are-you "alice")
(who-are-you 123)))
但是有一个错误No matching clause: class clojure.lang.Keyword
。
所以我把它写成condp,成功了。
(ns test
(:import (clojure.lang Keyword)))
(defn who-are-you [input]
(condp = (type input)
String "String - Who are you?"
Keyword "Keyword - Who are you?"
Long "Number - Who are you?"))
(defn -main []
(println (who-are-you :alice)
(who-are-you "alice")
(who-are-you 123)))
我想知道为什么condp起作用,但大小写不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。