Clojure에서 함수 리터럴에 원하는 수의 인수를 사용할 수 있지만 실제로는 사용하지 않습니다. 그래서 %&
(함수 리터럴의 경우 '나머지 arg')과 #_
('discard'독자 매크로)을 발견했습니다.'rest arguments'매크로가있는 Clojure 함수 리터럴 'discard'reader 매크로
=> (macroexpand `#(... #_ %&))
(fn* [& rest__125459__125460__auto__] (...))
이 내가 원하는 것을 보이는 (그리고 결국 작동하는 것 같다)하지만, 폐기 매크로가 작동하는데 어떻게입니다 :
하지만 어떻게 그들이 함께 일할 나를 놀라게? 문서 says :# _ 다음의 양식은 독자가 완전히 건너 뜁니다.
여기 분명히 무시 된 %&
양식은 부작용이 있습니다. 즉 리터럴 인수 목록에 영향을 미칩니다. 이 동작에 의존해야합니까, 아니면 더 버그처럼 보입니까?
감사합니다, 나는에 무엇'# _' 매크로를 이해하고 어떻게 정상적으로 동작합니다. 제 질문은 특별히 # # %의 조합과 명백한 부작용이 의도 된 것인지에 관한 것입니다. 어쩌면 질문 제목을 조금 바꾸어 말해야 할 것 같습니다. – alex