我刚刚开始学习Clojure,我正在尝试编写一些东西,将一些URL从网页中拉入内存,并在每个URL周围添加一些元数据。
我可以获取网址但是它存储在我遇到问题的地方。我已经想出我需要一个带有嵌套映射的向量,然后我可以使用assoc-in添加新记录,但是因为我不知道URL我不知道我最初如何定义我的数据结构。
例如:
(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添加它,然后从网站添加其余内容。
如果有人可以建议更好的方式来存储数据,请随意。
答案 0 :(得分:2)
我认为你想从某个命令行参数修改你的*comics*
var - 然后在“处理”其中的元素时更多地修改它。
我建议你不要这样做。
似乎没有任何理由你不能从命令行中获取漫画网址并将它们作为参数传递给执行处理的函数,并从这些网址返回任何你想要的内容。这样做 - 就是这样;在功能上,没有变异vars - 肯定会更容易在clojure中实现,更容易并行化,并且更加惯用和有趣。