2

次のことを行う必要があります。

(defn make-menu [] (for [i (range 3)] '(+ i 100)))

戻るには make-menu が必要です: ('(+ 0 100) '(+ 1 100) '(+ 2 100))

ベクトルには評価されていない関数が含まれていることに注意してください。

Clojureでこれを行うことは可能ですか?

お世話になりました!

ヤクブ

4

1 に答える 1

5
(defn make-menu [] (for [i (range 3)] (list '+ i 100)))

また

(defn make-menu [] (for [i (range 3)] `(+ ~i 100)))

最初の形式は、3 つの要素のリストです: 記号 + 引用符、i は for リスト内包表記でバインドされた値と 100 に評価されます。

2 番目の形式は、syntax-quote の例です。'通常の quoteと syntax-quoteの違いに注意してください~。また、シンボルを完全に修飾するため、 に+なりclojure.core/+ます。通常の引用符は、引用された形式のすべてのサブ要素を単に引用するだけなので、そこで評価することはできません。

于 2013-01-25T18:00:22.687 に答える