Using Lisp or Scheme for runtime configuration of Java programsの続きとして、私はプレーンJava文字列に加えてコードを含むことができるJavaプロパティファイル "replacement"を持つことを検討しています。 Javaプロパティファイルは次のようになります。楽しみのためにJavaプロパティファイルをエミュレートする構文は、SchemeとClojureの両方で読み取り可能ですか?
key1=value1
key2=value2
...
私は(原因サイズ)高齢者JSchemeで遊んでいますが、Clojureのと互換性があるでしょう、ファイル形式を有することが有用であろうことを考えるようになったのです。これにより、Clojureを使用している大規模システムだけでなく、小さな「読み込み」設定でも同じ構文を使用できます。したがって、静的な文字列ではなく、値を評価できるという考え方です。
(#(...)
が[...]
に比べて)私は非常にスキームやClojureのを経験していないのですが、それはvector
は、両方で利用可能であることが表示されますが、ショートカット構文が異なります。
有効なSchemeとClojureの両方のプログラムである "Javaプロパティ"データ構造を表す構文はありますか?実際のコードを表示してください。
EDITは:(props ...)
の提案を見て、いくつかのより多くのelispとJSchemeと私のLispのスキルをブラッシュアップした後、私は
(list
"key1" "value1"
"key2" "value"
)
はないの構文でこれを行うための最も簡単な方法かもしれないことがわかりましたプロパティファイルから離れすぎています。
(props 'key1 value1 'key2 value2 ...)
今で:「小道具」機能の定義についてどのように、あなたはClojureのマップリテラルを読み取るために(とClojureのは、カスタムのリーダーマクロをサポートしていません)方式のリーダーマクロを作成したくないと仮定すると、
キーにはピリオドやその他の文字が含まれる可能性があります。信じられないことは、シンボルに許されています。 '(小道具" key1 "" value1 "" key2 "" value2 ")'は実現可能でしょうか? –
はい、うまくいくでしょう。 –