Michael Tiedtke <[email protected]>:
> Nice! What about (define-class <stack> (<list>) ...)? In GOOPS every
> primitive type is (or should be) a class that can be used with
> multiple inheritance. It's enough to (use-modules (oop goops)).
My "simpleton" doesn't have classes. It's *object* oriented, not *class*
oriented.
> Then you're missing /this/, too.
Not at all. It's very present in simpleton:
========================================================================
(define-public (<domain-client> .mux .peer-address)
(define .this
(let ((.super (<datagram-client> .mux .peer-address))
(.opmap (make-hash-table))
(.next-key 0))
(define (query domain-name record-type listener xid)
; ...
(define (handle-recv message)
; ...
(make-object .super query handle-recv)))
.this)
========================================================================
> But /super/ is missing in my implementation. What should it do with
> multiple inheritance? How should it know about the inherited
> definitions?
Multiple inheritance is there in simpleton, without classes.
> You're lookup table is just a table. You could use an environment or to
> keep the size of the structure to the ground:
In simpleton, each object has a unique dispatch table.
Marko