1. ホーム
  2. clojure

[解決済み] clojureの "let "の例を理解しようとすること

2022-02-26 12:09:21

質問

(defn make-adder [x]
  (let [y x]
    (fn [z] (+ y z))))
(def add2 (make-adder 2))
(add2 4)
-> 6

私はclojureでこのletの例を理解しようとしています。 y変数には何が設定されていないようです。 私はlet構文を理解していない。

どのように解決するのですか?

(let [y x]
    <body>)

を評価します。 <body> という辞書的なコンテキストで y の値にバインドされています。 x .

Clojureを参照してください。 ドキュメント の説明については let の構文があります。一般的な形式は

(let [sym1 val1
      sym2 val2
      sym3 val3
      ... ]
    <body>)

symN は、対応する valN .