Clojure设置中带有嵌套HashMap的空向量

Empty Vector with nested HashMap in Clojure setup

我刚刚开始学习Clojure,并且我正尝试编写一些东西来将某些URL从网页中拉到内存中,并在每个URL周围添加一些其他元数据。

我可以获取这些URL,但会将它们存储在遇到问题的某个地方。 我发现我需要一个带有嵌套映射的向量,然后可以通过assoc-in向其中添加新记录,但是由于我不知道URL是,所以我不确定如何开始定义数据结构。

因此,例如:

1
2
3
4
5
6
7
8
9
(def *comics*
  [{:name"Penny-Arcade"
    :url"http://www.penny-arcade.com/comic/"
    :working 0
   }
   {:name"We The Robots"
    :url"http://www.wetherobots.com/"
    :working 0
   }])

我只是不确定如何在没有数据的情况下启动上述数据结构,然后首先从命令行arg进行添加,然后从网站进行添加。

如果有人可以提出一种更好的方法来存储上述数据,请放心。


我认为您想通过某些命令行参数修改*comics*变量-然后在"处理"其中的元素时对其进行更多修改。

我建议你不要那样做。

似乎没有任何理由不能从命令行获取漫画URL,并将它们作为参数传递给函数,该函数进行处理并从这些URL返回所需的内容。 那样做-那就是; 从功能上讲,无需更改var-绝对会更容易在clojure中实现,更易于并行化,并且全都更加习惯和有趣。