2013-03-16 2 views
1
I 클래스 번호의 인스턴스를 만들 함수 메이크업 번호를 확인해야합니다

:만드는 방법 기능을 사용하여 클래스 (커먼 리스프)

(defclass numbers() 
    ((x :initform 0) 
    (y :initform 0))) 

Imput이어야 리튬이 : (make-numbers 2 8) 내가 시작 : (defun make-numbers (new-x new-y) (....를, 그러나 나는 어떻게 계속되는지 모른다. 나는 하루 종일 노력했지만 아무런 결과도 얻지 못했습니다. 마지막으로이 두 숫자를 계산해야합니다.

의견이 있으십니까? 감사.

답변

2

난 당신이 슬롯 :initarg 키워드를 추가 제안 :

(defclass numbers() 
    ((x :initform 0 :initarg :x) 
    (y :initform 0 :initarg :y))) 

그런 다음 함수에서 make-instance를 호출 :

(defun make-numbers (new-x new-y) 
    (make-instance 'numbers :x new-x :y new-y)) 

그 방법은, 당신이 slot-valuesetf를 사용할 필요가 없습니다 인스턴스의 슬롯을 초기화하십시오.

+0

감사합니다. 비슷한 것을 시도했지만 작동하지 않았습니다. 나는'setf'와'slot-value'로 잘못된 코드를 작성했습니다. – Ats

관련 문제