3

私はClojureを初めて使用し、SOがここで私を助けてくれることを望んでいました:

;; a loop to collect data
(defn read-multiple []
  (def inputs (list))

  (loop [ins inputs]
    (def input (read-val ">"))
    (if (not= input "0")
      (recur (conj ins input)))
    (i-would-like-to-return-something-when-the-loop-terminates)))

入力を収集した後、これまでに収集されたすべての入力のリストを取得するにはどうすればよいですか?

4

1 に答える 1

5

ループの戻り値は、ifステートメントのretrun値になります

 (loop [ins inputs]
   (def input (read-val ">"))
   (if (not= input "0")
     (recur (conj ins input))
     return-value-goes-here))

ローカルをバインドdefするために置き換えますlet

(loop [ins inputs]
 (let [input (read-val ">")]
  (if (not= input "0")
    (recur (conj ins input))
    return-value-goes-here)))
于 2012-06-28T18:20:54.103 に答える