2014-09-24 5 views
1

Clojure에서 작은 애완 동물 프로젝트를 진행 중입니다. do-something이 기대Clojure : Varargs 변환하지만 Varargs 유지하기

(defn foor [bar & args] 
    (let new-args (custom-transform args)] 
    (do-something new-args)))))) 

그러나이 변수 인수가 아닌 목록 개체 : 나는 가변 인자를 전달하는 기능을 가지고있다. custom-transform

(defn custom-transform [& args] 
    (if vars vars nil)) 

에서 어떻게 변환을 적용한 후 내 인수의 "가변 인자"-iness을 유지합니까?

+0

가능한 복제본 [변수를 개별적으로 함수에 전달] (http://stackoverflow.com/questions/8523254/passing-list-of-variables-individually-to-clojure-function) – Mark

+0

[ Clojure : 함수 호출 사이에 Variadic Args를 유지하는 방법] (0120-387-301) –

답변

1

나는 트릭을 할해야 적용 생각 :

(apply do-something new-args) 

귀하의 문제가 가변 인자를 특정하지 않습니다. 당신이 원하는 것은 do-something으로 호출하여 배열의 원소를 함수의 인자로 전달하는 것입니다. 이것은 정확히 apply이하는 일입니다.

+0

예, 그 트릭을했습니다. 고맙습니다. 받아 들일 때까지 1 분 정도 기다려야합니다. –

+0

Btw, 해결해 주셔서 감사합니다. 이유가 무엇인지 설명해 주시겠습니까? 이유는 무엇입니까? –

+2

-1 이런 종류의 질문은 수천 번 요구되었지만 사람들은 그것을 물어보고 누군가가 '적용'에 대한 한 줄의 답을 작성했습니다. 나는 그것을 얻지 않는다. 예 : [this] (http://stackoverflow.com/questions/25621696/how-to-use-list-as-parameters) 및 [this] (http://stackoverflow.com/questions/8523254/passing-list 변수 - 개별적으로 클로저 함수) (이것은이 종류의 가장 오래된 질문입니다). – Mark

관련 문제