如果匹配条件返回最后一个值,有没有办法突破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