У вас есть некоторые проблемы с круглыми скобками в вашей функции yearCode
. У вас есть дополнительные (
между defn
и yearCode
, а ваши последние два выражения if
должны заключаться в квадратные скобки:
(defn yearCode [year]
(if (= year "freshman") 1
(if (= year "sophomore") 2
(if (= year "junior") 3
(if (= year "senior") 4 0)))))
Однако вы, вероятно, найдете использование case
проще:
(defn yearCode [year]
(case year
"freshman" 1
"sophomore" 2
"junior" 3
"senior" 4
0))
или карта:
(def yearCodes
{"freshman" 1
"sophomore" 2
"junior" 3
"senior" 4})
(defn yearCode [year]
(get yearCodes year 0))
Вы также должны использовать read-line
вместо read
в своей основной функции. read
преобразует результат в форму замыкания, а read-lines
возвращает строку напрямую.
(defn -main []
(println "\n To find your year:")
(print "enter your year: ") (flush)
(let
[year (read-line)]
(print "\n your year is ")
(print (yearCode year))
(print "\n\n")))