Я знаю, что этот пример тривиален, потому что я думаю, что есть функция библиотеки clojure, которая сделает это, это не главное.Clojure, возвращающий список
У меня есть следующий код
(defn makelistres [a b res]
(if (= a b) res (makelistres a (dec b) (conj res b))))
(defn makelist [a b]
(makelistres a b [])
)
Есть ли способ, чтобы сделать тот же эффект, без необходимости проходить список в качестве параметра? Такие, как бросать его в стек
Таких, как
(defn test [a b]
(if (= a b) 0 (+ 1 (test a (dec b))))
)
Не знаю, если скобка совпадают, как я писал в этом текстовом поле, но вы получите точку.
Непонятно, что вы имеете в виду, но вы можете избежать использования параметра res, используя вместо этого цикл. если вы заинтересованы в том, что вы используете recursive calls, то recur может избежать этого. –
Да, конечная цель - избежать параметра res, есть ли способ сделать это без цикла? –
Какова ваша функция 'makelistres'? Я уверен, что это работает, но я просто хотел бы знать, чего ожидать при запуске в REPL. –