0

我试图只获取一个生肖名称以将其传递到不同的功能,但我不知道为什么在显示生肖后我会得到空括号。我是 Clojure 的新手。

(defn miko []
                        (let [guess (read)]  
                        (remove nil?(cond 

                             (some #(= guess %) (range 101 120))(println "Capricorn")
                             (some #(= guess %) (range 120 219))(println "Aquarius")
                             (some #(= guess %) (range 219 321))(print "Pisces")
                             (some #(= guess %) (range 321 420))(print "Aries")
                             (some #(= guess %) (range 420 521))(print "Taurus")
                             (some #(= guess %) (range 521 621))(print "Gemini")
                             (some #(= guess %) (range 621 723))(print "Cancer")
                             (some #(= guess %) (range 723 823))(print "Leo")
                             (some #(= guess %) (range 823 923))(print "Virgo")
                             (some #(= guess %) (range 923 1023))(print "Libra")
                             (some #(= guess %) (range 1023 1122))(print "Scorpio")
                             (some #(= guess %) (range 1122 1221))(print "Sagittarius")
                             (some #(= guess %) (range 1221 3112))(print "Capricorn")
                             :else "wrong"))))

我运行它(miko),结果如下:

摩羯座

()

请帮我删除这个,因为当我想将结果名称(例如 Capricorn)传递给另一个函数时,它会传递 ()-括号。

4

1 回答 1

2

你做得很好,只需删除打印语句,例如替换(print "Capricorn")"Capricorn",该功能将起作用。

你也不需要(remove nil? ...)

于 2015-03-24T11:09:31.097 回答