lisp - gigamonkeys - 커먼 리스프




리스프 스타일:setq 대 setf (4)

setf는 "set field"이며, 장소를 변경하고 사용자 확장자를 가질 수 있습니다. setq는 첫 번째 인수를 인용 부호로 설정합니다.

피터 노빅 (Peter Norvig) 은 인공 지능 프로그래밍의 패러다임 (Paradigms of Artificial Intelligence Programming )에서 50 페이지 에서 특이성과 일관성 간의 균형을 바꾸고 setq 또는 setf를 사용하여 변수를 값으로 업데이트하도록 선택할 때 설명합니다. 추천 메뉴가 무엇인가요? 가독성을 훨씬 뛰어 넘는 상황에 부딪 혔습니까?


setq 대신에 setf를 사 용하면 틀리지 않을 것이다.

Common Lisp를 계속 사용하지 못하게하는 많은 것들이 있습니다. 구현자가 아직 지원할 필요가없는 많은 것들이 있습니다.


해당 섹션의 Norvig의 최종 조언을 따르는 것이 좋습니다. 일관성을 유지하십시오. '가독성'은 물론 프로그래밍에서 선택을하는 가장 중요한 이유입니다. 기호의 전체 값 셀을 다루는 독자 (2 개월 후)와 대화하는 것이 중요하다면 setq 를 사용하십시오. 그렇지 않으면 setf 사용하십시오. 그러나 당신이 일관성이있을 때만.


setq 사용할 수있는 곳이면 setf 를 사용할 수 있습니다. 사실, setf 는 실제로 setq 를 기반으로하는 매크로입니다. 따라서 이것은 순전히 가독성 및 스타일 문제 여야합니다.

거의 모든 코드는 setq 의 사용을 피하고 setf 사용합니다.