클래스가 목록에있을 때 클로우즈 액세서 함수를 사용할 수 없습니다. 나는 각각의 인스턴스의 값을 얻을 것 함수를 작성하기를 원한다면 다음lisp clos 접근 자 문제
(defparameter b (make-instance 'a :a 1))
(defparameter c (make-instance 'a :a 2))
과 :
(defclass a()
((a :accessor a
:initarg :a)))
그리고 2 개 인스턴스를 만들 :
내가 클래스 A가 말 목록에있는 동안 나는(defun get-a (lst)
(mapcar #'a lst))
을 할 것이며
로 전화(get-a '(b c))
는하지만 난 오류 얻을 수행
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION A (1)>
when called with arguments
(B).
[Condition of type SIMPLE-ERROR]
을 그리고 그것은 또한 경우 대신 mapcar 등등을 직접 접근을 호출하는 일이, 내가 접근을 포함하는 함수를 호출합니다. 또한 mapcar 대신에 루프와 다른 것들을 사용해 보았습니다.
감사합니다.
'(get-a '(b c))가 아닌'(get-a (list b c))'입니다. –