用于模拟Java属性文件的语法,可由Scheme和Clojure读取吗?

作为Using Lisp or Scheme for runtime configuration of Java programs的延续,我正在寻找一个Java属性文件“replacement”,它可以包含除普通Java字符串之外的代码. Java属性文件如下所示:

key1=value1
key2=value2
...

为了好玩,我正在玩一个老年人JScheme(由于大小),但后来想到有一个与Clojure兼容的文件格式会很有用.这将允许使用相同的语法只是为了小“读取我的配置” – 使用Clojure的大型系统.接下来的想法是,现在可以评估值,而不仅仅是静态字符串.

我对Scheme或Clojure不太熟悉,但看起来两者都有矢量,但是快捷语法不同(#(…)与[…]相比).

是否有表示“Java属性”数据结构的语法,它既是有效的Scheme又是Clojure程序?请显示实际代码.

编辑:在查看(道具……)建议并用ELisp和JScheme刷新我的Lisp技能后,我发现

(list 
 "key1" "value1" 
 "key2" "value"
 )

使用距离属性文件不太远的语法可能是最简单的方法.

解决方法:

假设您不想创建方案阅读器宏来阅读clojure地图文字(并且clojure不支持自定义阅读器宏),那么如何定义“props”功能:

(props 'key1 value1 'key2 value2 ...)

现在在clojure中定义道具为

(def props hash-map)

同样在方案中,你可以用任何一种语言来评估道具表达式.

你可以获得更多的时髦,并使道具成为引用键的宏(假设键是符号)或保持原样,并以必须引用键为代价获得更大的灵活性.

上一篇:PyCharm设置仿sublime配色__Py版本2018.1


下一篇:关于 IntelliJ 的 IDEA PyCharm 等更新 2019.2 后中文乱码 的解决方案