【发布时间】:2016-05-03 07:54:01
【问题描述】:
我对 Clojure 还很陌生,我只是想了解 leiningen 可以做的所有有趣的事情。看起来很酷的一件事是lein change,它允许您提供一个函数和参数以应用于project.clj 中的一个键。因此,如果您的 :url 值为 https://www.example.com,您可以运行
lein change url str "/myproject"
运行(str (:url project) "/myproject")(假设项目结构像地图一样工作)。很酷。
我的问题是:有没有一种简洁的方法可以使用lein change 来完全替换密钥?我可以看到我需要向lein change 提供一个函数,该函数忽略它的第一个参数,并返回它的第二个参数。如果有这样的函数——称之为clobber——那么我可以运行:
lein change url clobber "https://new.example.com"
会变成(clobber (:url project) "https://new.example.com")。
有没有像clobber 这样工作的内置函数,还是我必须用->> 做一些黑魔法?
注意:我意识到我可以打开文件并更改值,但我想为这个难题找到一个优雅的解决方案!
【问题讨论】:
标签: clojure functional-programming leiningen