2

私は Clojure の初心者で、簡単な (ばかげた) 質問があります。私は4つのユーザー入力を読み取ろうとしており、それらの入力をリストに保存しています

これは私のコードです:

(def in1 (読み取り行)) (def in2 (読み取り行)) (def in3 (読み取り行)) (def in4 (読み取り行))

(def mylist '(in1 in2 in3 in4))

ただし、リストを印刷すると、「in1 in2 in3 in4」と表示されます。変数 in1 in2 in3 および in4 の値をリストに入れるにはどうすればよいですか?

ありがとうございました

4

3 に答える 3

4

Clojure (およびほとんどの Lisp) の単一引用符は、式を評価しないようにシステムに指示します。したがって

'(in1 in2 in3 in4) 

と同じです

(quote (in1 in2 in3 in4)

あなたが見たように、それらは両方ともシンボルのリストで終わります。

代わりに、これらの記号で表される値のリストが必要な場合は、リスト形式を使用できます。これはすべての引数を評価し、結果のリストを返します。次のようになります。

(def mylist (list in1 in2 in3 in4))
于 2009-07-14T05:28:01.817 に答える
2
(def mylist (list in1 in2 in3 in4))
于 2009-07-14T04:42:12.893 に答える
0

提案されているように、使用listはあなたが探しているものです。評価されたシンボルと評価されていないシンボルを混在させたい場合は、構文引用符と引用符解除を使用できます。あなたの質問については、誰かがこれを探している場合に備えて、これは別の方法です。(一重引用符ではなく逆引用符に注意してください)

`(~in1 ~in2 ~in3 ~in4)
于 2015-11-05T18:03:57.257 に答える