:구문 오류로 인해 Clojure 사후 조건을 실행할 수 없습니다 - 그 이유는 무엇입니까? 이 함수에서
(defn my-post
[a]
{:post (number? %)}
a)
사후 조건을 실행하지 않는다 (또는 적어도 어설 오류가 발생하지 않는다). 이제는 다음과 같아야한다는 것을 알고 있습니다.
(defn my-post
[a]
{:post [(number? %)]} ;; note the square brackets around the expression
a)
실제로 제대로 작동합니다.
문제는 이것이 자동으로 실패하고 무엇이 잘못되었는지 파악하는 데 시간이 걸렸습니다. 구문 오류, 런타임 예외는 없습니다.
Clojure가 왜 불평하지 않았는지 이해하기 위해이 코드로 Clojure가하는 것을 이해하고 싶습니다. 매크로 확장? 파괴? 대괄호가 보이지 않으면 코드가 사라지나요? fn
위한 조건 맵 (따라서 또한 defn
)의 형태이어야한다는
이 게시물 조건이 무엇인가를 설명하세요? 이 방법의 목적이 무엇인지 파악할 수 없습니다. –