首页 > 解决方案 > 使用列表中的参数调用函数

问题描述

我有一个需要 3 个参数的函数

(defn times-changed-answer [rid qid csv-file] ...some code)

对于使用 (record-id) rid 的用户来说,他用 (question-code) qid 更改了他的答案的次数。数据在 csv 文件中。

它有效,我已经为多个用户测试过它。现在我想为所有用户和所有问题调用这个函数。我有一个rids 列表和一个qids 列表。

(def rid-list '(1 2 4 5 10)
(def qid-list '(166 167 168 169 180 141)

我怎么能对所有用户调用这个函数来解决所有问题?列表的长度不同,第三个参数(文件)始终相同。

标签: clojure

解决方案


我会使用for列表理解——这取决于你在这里期望的结果;这里 eg [rid qid result]为所有这些返回:

(for [rid rid-list
      qid qid-list]
  [rid qid (times-changed-answer rid quid csv-file)])

如果您想在地图中包含此内容,则可以在此范围内reduce进行。


推荐阅读