口齿不清的类
Classes in lisp
我想用lisp定义一个类,它在c ++中非常简单,代码是这样的
class intersection{
int distance;
int fuel;
char node1;
char node2;
};
我怎样才能用 Lisp 编写它并从中定义对象谢谢
使用 Common Lisp
对象系统,它是 ANSI Common Lisp 的一部分。
(defclass intersection-class ()
((distance :type integer)
(fuel :type integer)
(node1 :type character)
(node2 :type character)))
CL-USER 69 > (make-instance 'intersection-class)
#<INTERSECTION-CLASS 4020002C2B>
在 CLOS 中,最简单的形式是使用 defclass
:
(defclass intersection ()
(distance
fuel
node1
node2))
这不是一个类;它只是一个数据结构(在顶部添加public:
或用struct
替换class
之前,它不是一个很有用的结构(。为此,您可以使用 a 列表。
我不知道你说的"从中定义对象"是什么意思。如果您的意思是"实例化它",那么创建一个 a 列表是相当简单的:'((distance . 10) (fuel . 85) (node1 . #a) (node2 . #z))
.
处理抽象的一种非常简单的方法是创建一个列表,其中类型在第一个元素中,数据在其余元素中,我将使用以下行来创建对象:
(list 'intersection distance fuel node1 node2)
如果你想要一个"构造函数",像这样的东西
(defun createIntersection (d f n1 n2)
(list 'intersection, d f n1 n2))
相关文章:
- 没有找到相关文章