我有一个在Lisp中定义的非常简单的数据结构:
;;Data structure for a person
(defstruct person
(name nil)
(age 0)
(siblings nil :type list)) ;; Siblings is a list of person objects
我随后实例化了几个人对象:
(setf person-a (make-person :name 'Tim :age 23))
(setf person-b (make-person :name 'Sally :age 21))
(setf person-c (make-person :name 'Louis :age 24))
我接下来将描述兄弟姐妹们(假设他们都是彼此的兄弟姐妹):
(setf (person-siblings person-a) (list person-b person-c))
(setf (person-siblings person-b) (list person-a person-c))
(setf (person-siblings person-c) (list person-b person-a))
我该如何打印已经实例化和修改的对象的信息呢?我查看了关于defstruct
的print-object
和print-function
选项,但我无法弄清楚如何正确地打印我的对象。使用类似以下代码的方式:
(print person-a)
发送我的ACL解释器进入无限循环。