2016-12-09 6 views
1

아이템이리스트에 있는지 확인하는 방법을 알고 있습니다 : (when (member item list :test #'equalp)). 내가 구조체 책의 목록이있는 경우 :Lisp의 멤버와 구조체

(defstruct book 
    name 
    author 
) 

는 어떻게 특정 저자의 책 (독립적 이름) 목록의 구성원 인 경우 확인합니까? 나는 이것이 매우 초보적인 질문이며, 나 자신에 의해 대답을 찾으려고했지만 성공하지 못했다는 것을 압니다.

답변

2

당신이 찾고있는 무슨 :key argument입니다 : member

(find author library :test #'string= :key #'book-author) 

같은 다음 item에 호출되지 않습니다

(member (book-name my-book) library :test #'string= :key #'book-name) 

:key있다.

+0

답장을 보내 주셔서 감사합니다. 'find' 대신'member'를 사용한다고 가정하십시오. 그것은'(member book1 library : test # 'equalp : key #'book-author)와 같은 것이겠습니까? (book1과 같은 저자가있는 책이 라이브러리에 있는지 알고 싶다면 –

+1

': key'는'item'에 호출되지 않습니다. 편집을 참조하십시오. – sds