open:programming-clojure

Programming Clojure

인자 용례
a 자바배열
coll 컬렉션
f 함수
r ref
val
agt 에이전트
expr 표현식
idX 인덱스
v 벡터

인자 이름이 너무나 짧고 간단해 보일 수도 있지만 여기에는 이유가 있다. 이른바 '좋은 이름'은 대부분 클로저 함수의 이름으로 사용되고 있기 때문이다. 함수 이름과 인자 이름을 같게 지을 수도 있지만 좋은 스타일이 아니다. 인자가 함수 이름을 가려 버리기 때문에, 인자를 참조할 수 있는 범위 내에서 이름이 같은 함수를 사용하는 것은 불가능하다. 인자로 사용되는 ref들을 ref로 부르거나 에이전트들을 agent라고 부르지는 말기 바란다. 이 이름들은 함수 이름으로 사용되기 때문이다.

리더 매크로 비고
익명 함수 #(.toUpperCase %) 2.3절 '함수'
주석 ; 한 줄 주석 2.2절 '리더 매크로'
deref @form → (deref form) 6장 '병행성'
meta form → (meta form) 2.7절 '메타데이터'
메타데이터 #metadata form 2.7절 '메타데이터'
인용 'form → (quote form) 2.1절 '기본 구문'
정규식 패턴 #“foo” → a java.util.regex.Pattern 4.4절의 '정규식을 시퀀스로 다루기'
구문 따옴표 `x 7.3절 '더 쉽게 매크로 작성하기'
평가 기호 ~
이음 평가 기호 ~@
var-quote #'x → (var x) 6장 병행성

defn으로 이름이 있는 함수를 만들 수 있다면, fn을 이용해 익명 함수를 만들 수 있다. 익명 함수는 언제 필요할까?

  • 함수가 너무 간단하고 자명한 나머지, 함수에 이름을 붙이는게 코드를 더 ㅇ릭기 어렵게 만드는 경우
  • 다름 함수의 내부에서만 쓰이는 함수라서 최상위 수준(top-level)에서 이름을 가질 필요가 없을 경우
  • 함수 내부에서 데이터를 이용해 동적으로 함수를 만들어 내는 경우

  • open/programming-clojure.txt
  • 마지막으로 수정됨: 2020/06/02 09:25
  • 저자 127.0.0.1