我目前正在致力于一个基于pdfbox,一个Java库的pdf生成库。 我本身没有问题,我只是不确定clojure会采取什么聪明的做法。 我尝试坚持使用Hiccup样式生成pdf。Clojure - 检索运行时间值
有了类似的东西(一个非常不切实际的例子):
[:page {:title "hey"}
[:frame {:name "frame1" :top 130}]]
我想在文档中后来检索传递给页面和帧(这是函数解析后)的值。例如,下一帧:
[:frame {:bottom (+ 10 (:top "frame1"))} (str "Titre:" (:title page))]
每个函数通过其选项映射到另一个这样的,第一帧的选择实际上是这样的:
{:title "hey", :name "frame1", :top 130}
但显然用户不能访问地图当执行这种代码时。 对于page
我认为使用全局Var更新绑定似乎是一个好的解决方案(开放给任何建议)。但是,因为可能有任何数量的帧,他们不能在早些时候宣布。因此,我的问题是:
什么样的功能,概念或做事方式最适合处理这类问题?我怎样才能让用户检索这些数据? (避免所有选项的全局变量和可能的入门)
我不明白为什么这应该使用动态变量而不是普通的词法变量。另外你的宏看起来像它需要':page'和':frame'硬编码,而我认为还有其他类型的查询需要根据页面的形状来完成。 – amalloy
动态变量将允许从内部函数调用查找上下文..我不明白如何用词法变量(也许全球原子,但你仍然需要清理它以某种方式)。关于其他类型的处理:这只是一个概念证明。人们不得不做更多的管道工作来使其生产就绪 – leetwinski