如果匹配條件返回最後一個值,有沒有辦法突破Clojure中的循環?大多數算法在找到它時返回結果並避免完成整個執行。在Clojure中實現中斷
假設我有一個從0到100範圍內的100個數字的向量,我想找到數字10.一旦找到10,我希望執行停止。
一個比我的例子更簡單情況如下:
(defn MySearch
[y]
(when (< y 10)
;;Corrected. Thanks to dsm who pointed it out. Previously was (< y 5).
(if (= (nth [1 2 3 4 5 6 7 8 9 10] y) 10)
(println
"I found it! Now I want to stop executing!"
)
)
(recur
(inc y)
)
)
)
(MySearch 0)
如何停止的時候我發現5?
我已經搜索了足夠的,我找不到任何方式來實現這一點。我在這裏也找到了一個答案,指出我所問的東西在Clojure中不存在,但我覺得它有點牽強。即使情況是這樣,我可以自己實現這樣的事情嗎?
(我是新來的Clojure。)
你可以在這裏放一些示例代碼嗎? – 2014-11-24 04:49:00
當然,我會立即編輯它! – Adam 2014-11-24 04:49:21