我想在Lisp它很簡單在c定義一個類++代碼將是這樣的類在口齒不清
class intersection{
int distance;
int fuel;
char node1;
char node2;
};
我怎麼可以這樣寫在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>
非常感謝 – 2011-12-26 10:34:36
這不是一個類;它只是一個數據結構(並且在頂部添加public:
或將class
替換爲struct
之前不是非常有用)。您可以使用a-list來達到此目的。
我不知道你的意思是「定義它的對象」。如果你的意思是「實例化」,創建一個列表是相當簡單的:'((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))
逗號是什麼? – 2011-12-26 00:15:38
哦,對不起。實際上沒有編碼6年的lisp。修復... – dutt 2011-12-26 09:14:05
在CLOS,最簡單的形式,你會使用defclass
:
(defclass intersection()
(distance
fuel
node1
node2))
你讀過關於Lisp的一切嗎?你是否用Lisp做過任何基礎編碼? – Rob 2011-12-26 00:04:02
這是關於CLOS書(http://www.gigamonkeys.com/book/object-reorientation-classes.html)的問題,不是一個SO問題。 – outis 2011-12-26 00:13:52
@outis:Lisp(或CLOS)問題如何不*關於編程? – 2011-12-26 00:17:24