2010-12-31 22 views

答えて

5

シンボルが定義されていない場合、これは常にエラーを表示します。これは、関数を呼び出す前にClojureがシンボルの解決を試み、失敗するためです。 (...好みの私の個人的な順に)考慮すべき

いくつかのオプション:

  • は、キーワード(「:私のキーワード」、すなわち)を使用してください - これは、彼らは結局のために設計されたものです!キーワードをあらかじめ定義する必要はありません。これはおそらく事を行う最も慣用的な方法でしょう。
  • 通常の文字列をパラメータとして使用します。後で必要に応じてこれをシンボルに変換することができます(シンボル "somename")
  • 関数が関数ではなくマクロである場合、理論上、シンボルをその場で再解釈することで、 。これは、評価の前にマクロ展開が行われるために機能します。
関連する問題