2012-11-16 4 views
0

저는 Lisp을 처음 사용 했으므로 :DIM 값에 액세스하는 방법을 모른다! 여기 코드는 다음과 같습니다Lisp acessing value (Lisp 신규)

(defstruct peca 
    dim 
    val) 

(setf exemple #S(PECA :DIM 2 :VAL 1)) 

어떻게 exemple에서 :DIM의 값을받을 수 있나요? exemple-dim을 시도하면 variable -DIM has no value이라고 표시됩니다.

답변

4

매크로 defstruct은 특히 판독기 기능을 정의합니다. 이들의 기본 이름은 structname-slotname의 형식이며 peca-dimpeca-val을 제공합니다.

HyperSpec, here.

+1

jwmc에서 자세한 정보는 당신이 그 값에 액세스하는 방법의 직접적인 질문에 대답했다있다. "classname + hyphen + slot-name"의 기본 스타일이 마음에 들지 않으면 : conc-name 옵션을 사용하여 초기 부분에 대해 더 멋진 것을 지정할 수 있음을 알아야합니다. 이제는 #S (...)를 직접 입력하지 않는 것이 좋습니다. Lisp은 그런 식으로 출력하지만, 자동으로 정의 된 (make-peca : dim ... : val ...) 생성자를 사용해야합니다. – khedron