2011-05-15 7 views
7

나는이 같은 함수 반환하는 함수를 정의하는 경우 :호출 Clojure의 고차 기능

(defn add-n 
    [n] 
    (fn [x] (+ x n))) 

내가 다음 기호에 결과를 할당 할 수

(def add-1 (add-n 1)) 

하고 전화 :

(add-1 41) 
;=> 42 

(add-n 1)의 결과를 새 기호에 할당하지 않고 어떻게 호출합니까? 다음은이 출력을 생성합니다.

(println (add-n 1)) 
#<user$add_n$fn__33 [email protected]> 
nil 

#<user$add_n$fn__33 [email protected]>은 생성 된 함수에 대한 내부 참조입니다.

답변

16

쉬운 : 당신이 본

(println ((add-n 1) 41)) 

출력은 함수 정의입니다. 둥근 괄호 사이에 매개 변수를 추가하면 충분합니다.