1
헬기, 클로저를 배우려는 시도로 필자는 시퀀스에 작용하는 clojure.core 함수에 관심을 보였다. 최근에 좀 이상한 행동을 발견하고 folling 표현의 차이의 explaination를 싶습니다클로저 저장과 표현식 사용하기
것은 난 할 노력하고있어입니다 :
user=> (reduce + (take-while (partial > 1000) (iterate inc 1)))
499500
그러나, 나는 def
로모그래퍼 (iterate inc 1)
를 저장할 때 오류 얻을 :
user=> (def a (iterate inc 1))
#'user/a
user=> (reduce + (take-while (partial > 1000) (a)))
java.lang.ClassCastException: clojure.lang.Cons cannot be cast to clojure.lang.IFn (NO_SOURCE_FILE:0)
누군가가 설명해 주시겠습니까 무엇 iterate inc 1
를 저장하고 표현에 직접 사용의 차이점은 무엇입니까? a
은 게으른 시퀀스이지만 뭔가 빠졌음을 압니다.
시간 내 주셔서 대단히 감사합니다.
아, 예, clojure.lang.cons에 대한 오류 메시지가 clojure.lang.IFn으로 전송됩니다. – wespiserA