문제
라이브러리를로드하는 데 사용하는 전화를위한 구문을 이해하려고합니다.
(use 'clojure.contrib.duck-streams)
독자가 해당 문자열을 평가하려고 시도하지 않도록 인용 리더 매크로를 Clojure.contrib.duck-streams에 적용 할 때 나에게 의미가 있습니다.
이제 다음을 사용하려면 : 리더 만로드하는 데만 태그 만 사용하려면 다음과 같은 이유가 맞습니다.
(use '[clojure.contrib.duck-streams :only (reader)])
대신에:
(use '[clojure.contrib.duck-streams :only reader])
나는 이것을 사용하기 위해이 벡터의 통과를 의미하기 위해 이것을 읽었지만 REPL은 Symbol에서 ISEQ를 만드는 방법을 모른다. 왜 독자 주변의 파렌스?
이것은 또한 첫 번째 줄과 동일하며 유효합니다.
(use '[clojure.contrib.duck-streams])
따라서 'String are'[String]은 내가 이해하지 못하는 동등한 인수 인 것 같습니다.
해결책
:only
기호 목록을 원합니다. 그것이 기능이 작성된 방식입니다. Docstring에 주목하십시오 refer
, 어느 use
용도.
refers to all public vars of ns, subject to filters.
filters can include at most one each of:
:exclude list-of-symbols
:only list-of-symbols
:rename map-of-fromsymbol-tosymbol
원하는 경우 둘 이상의 기호를 지정할 수 있도록이 방법으로 작성되었습니다.
(use '[clojure.contrib.duck-streams :only (reader writer)])
논의 된 바와 같이 이 최근 게시물, 가변 수의 인수를 가져 오거나 반환하는 함수를 작성하는 경우 단일 항목을 복용/반환하는 경우에도 항상 목록이나 벡터 또는 세트를 가져 오거나 반환하는 것이 좋습니다. 왜냐하면:
nil
, 종종 "제로 항목"을 나타내는 데 사용되는 것은seq
할 수 있는. 빈 컬렉션도 있습니다seq
할 수 있는.- 목록에있는 두 개 이상의 항목이 있습니다
seq
할 수 있는. - 하나의 항목을 갖는 것만이 의미가 있습니다.
seq
목록 자체에 넣을 수 있습니다.
하나의 항목 사례를 특별한 경우가되는 것은 어색 할 것입니다. 한 항목을 일종의 퇴화 케이스로 취급하고 목록에 던질 때 더 일관되고 프로그램이 더 쉽습니다.
모두에 유의하십시오 use
걱정하는 것입니다 :only
인수는 심각한 기호의 모음입니다. 즉, 목록, 벡터 및 모든 작업을 설정하는 것을 의미합니다.
(use '[clojure.contrib.duck-streams :only [reader writer]])
(use '[clojure.contrib.duck-streams :only #{reader writer}])
싱글 Symbol
그러나 그렇지 않습니다 seq
당신은 당신이하는 예외를 얻는 이유입니다.
봐 Core.clj 이것이 어떻게 구현되는지보고 싶다면.
다른 팁
단순한 "Parens"가 아닙니다. Parens는 목록을 작성하는 구문입니다. 다음과 같은 항목이 나타납니다.