如何使用类创建函数(Common Lisp)

时间:2013-03-16 07:52:29

标签: common-lisp

我需要创建一个函数make-numbers,它创建一个类号的实例:

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

Imput应该是这样的:(make-numbers 2 8) 我开始:(defun make-numbers (new-x new-y) (....,但我不知道如何继续。我整天都试过,没有结果。最后,我需要计算这两个数字。

你知道吗?感谢。

1 个答案:

答案 0 :(得分: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-value上使用setf来初始化您实例的广告位。