Clojure: lassen Sie Umfang und Funktion Rückgabewert

Ich bin mit einigen Schwierigkeiten, herauszufinden, wie Sie mithilfe der "let" - form. In dem nachfolgenden Beispiel, möchte ich lokal binden den Wert "cols" um zu arbeiten, später in der Funktion. Was ich Bemerke jedoch, dass, wenn ich "lass" die Funktion sel-opt-tmp gibt einen null-Wert und nicht als eine Liste.

(defn sel-opt-tmp []
  (let [cols "test"]))

(prn (sel-opt-tmp))

*Der obige code liefert einen null-Wert.

Ich verstehe, dass "lassen" bindet nur einen Wert im Bereich einer Funktion, was ich nicht weiß ist ob es einen Weg gibt, um übergeben Sie den Wert aus der let-Bereich. Vielleicht gibt es so etwas wie "return", die mir nicht bekannt sind? Oder ist das einfach schlechtes design und sollte ich nicht die Bindung überhaupt, die in diesem Fall (dieser neigt zu langen Ketten von Funktionen, die schwierig zu Lesen, obwohl)?

  • Die let form implizit gibt der Letzte Ausdruck enthält, welche in Ihrem Fall ist die unsichtbare nil. Sie benötigen cols im Körper des let form zu haben, es zurückgegeben.
  • "let" only binds a value in the scope of a function - das ist nicht ganz richtig. lets erscheinen fast überall, und den Umfang der gebundenen Namen ist die let Ausdruck.
InformationsquelleAutor kfk | 2011-11-18
Schreibe einen Kommentar