File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ ; ; 注意,common-lisp 的 class 名字,
2
+ ; ; 直接占用了常用的 object 名,
3
+ ; ; 而不是用 Dog 和 dog 的命名惯例来区分 class 和 object。
4
+
5
+ (defstruct dog name breed age)
6
+ (defparameter *rover*
7
+ (make-dog :name " rover"
8
+ :breed " collie"
9
+ :age 5 ))
10
+ *rover*
11
+ (dog-p *rover* )
12
+ (dog-name *rover* )
13
+
14
+ ; ; in a new scheme, we can have:
15
+
16
+ (define-class dog name breed age)
17
+ (define-object *rover*
18
+ (new dog
19
+ :name " rover"
20
+ :breed " collie"
21
+ :age 5 ))
22
+ (define-object *rover*
23
+ (new dog
24
+ :name " rover"
25
+ :breed " collie"
26
+ :age 5 ))
27
+ *rover*
28
+ (:p *rover* )
29
+ (:name *rover* )
30
+
31
+ ; ; or
32
+
33
+ (define-class dog name breed age)
34
+ (define-object *rover*
35
+ (dog.new
36
+ .name " rover"
37
+ .breed " collie"
38
+ .age 5 ))
39
+ *rover*
40
+ (.p *rover* )
41
+ (.name *rover* )
You can’t perform that action at this time.
0 commit comments