2

我想在 clojure 应用程序之间来回移动数据。应用程序设置和一些状态信息。

我无法在使用 xml 或 s-expressions 之间做出决定,您认为每种方法的优缺点是什么?

4

2 回答 2

4

以编程方式最方便的方法是简单地对文件使用print函数,并从文件中读取函数。 如果您选择这种方法,请务必检查 print-dup read-eval 。优点:简单、容易、人类可读/可编辑。缺点:特定于语言。

Clojure 也有一个内置的 XML 阅读器,因此如果您需要让数据以某种方式与其他 XML 应用程序互操作,那么这是一个有效的选择……但我不会推荐 XML,除非您有特定的需求。优点:有时是要求。缺点:丑陋,额外的工作。

如果您想要替代 s-exp,clojure-contrib 中还有一个很棒的 JSON 库。优点:可互操作。缺点:额外的工作。

这是关于这些方法的一个很好的讨论: http://groups.google.com/group/clojure/browse_thread/thread/4042e7a087f43c9a/a90b9bc58cc9ec3?q=data+file+group: clojure#0a90b9bc58cc9ec3

于 2009-09-11T05:13:37.093 回答
2

如果这个文件仅供内部使用(没有其他程序需要读取它们),那么它是一个实现细节,请使用最简单的解决方案:s-exprs。否则,JSON 或 XML。

于 2009-09-11T08:38:26.877 回答