【发布时间】:2016-02-05 14:13:16
【问题描述】:
我正在尝试找到解决我目前面临的问题的方法,我已经尝试并尝试让这个工作但无济于事。我正在尝试扫描包含数据的列表,然后如果找到则返回数据的位置。
例如,如果我运行这个:
(ind 'p '(l m n o p o p))
然后我会得到一个返回值......
==> 4 6
因为它在那些位置找到了数据。
我已经接近我之前想用这个解决方案想要的东西,但我无法让它运行。谁能帮我弄清楚我的功能是怎么回事?据我所知,它应该可以工作,但我无法弄清楚为什么它不是?
(defn ind
([choice list emptylist x]
(let [x (count list)])
(if (= (x) 0)
nil)
(if (= (first list) item)
(ind item (rest list) (cons x emptylist) (dec x))
(ind item (rest list) emptylist (dec x))
)
)
)
我试图做的是循环遍历列表,直到它遇到一个值并将其添加到空列表中,一旦它循环通过返回空列表。
【问题讨论】:
标签: recursion clojure functional-programming lisp iteration