Skip to content

Commit b9a5328

Browse files
committed
up
1 parent 1381b37 commit b9a5328

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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*)

0 commit comments

Comments
 (0)