我是一名大学讲师,试图在获得一点 Clojure 乐趣的同时计算我的成绩。我已经将我所有的学生编号及其相应的成绩列成如下所示的列表:
(def grades-1 (let [s18129 [100 70 85 71 85]
s18121 [80 75 85 81 85]
r18131 [75 60 80 56 75] ...])
;; r before the number is shorthand for repeater
;; and not important to this question
我希望调整成绩,使这些向量中的一、二、三、四、五年级的权重分别为 10%、20%、15%、25% 和 30%。为了帮助我完成这项任务,我创建了一个辅助函数:
(defn percentify
"adjust raw score to weighted percentile"
[raw percentile]
(* (/ raw 100) percentile))
我想创建另一个函数,该函数将映射成绩列表,并根据其位置,以向量中每个元素的特定权重将百分比函数应用于每个学生的成绩。这就是我现在正在使用的东西,但我无法让它在 repl 中工作。我认为这与我构建班级数据的方式有关,或者我对 println 的使用感到困惑。
(defn finalize [grades-list]
(let [[[student] [a b c d e]] grades-list]
(println
(percentify a 10.0)
(percentify b 20.0)
(percentify c 15.0)
(percentify d 25.0)
(percentify e 30.0))))
然后我想调用这个函数来以可读的形式返回带有学生人数的最终成绩。有人可以帮助我走上正轨吗?