Hello.

Probably the following is a bug in goops-0.1.6:

(use-modules (oop goops))

;;; an abstract vector class (numbers are a special case)
(define-class <Vector> ())

;;; vector addition
(define-generic vector+)
(define-method vector+ () 0)  ;; Warning: may not be the right thing ...
(define-method vector+ ((x <Vector>)) x)
(define-method vector+ ((x <number>)) x)
(define-method vector+ ((x <number>) (y <number>)) (+ x y))
(define-method vector+ ((x <Vector>) (y <Vector>))
  (error "has to be implemented for each nontrivial vector type"))

;;; method for arbitrary arguments (should only be used when nothing
;;; else fits)
(define-method vector+ ( . args )
  (vector+ (car args)
           (apply vector+ (cdr the))))

;;; The following command hangs.  I remember that I have obtained also
;;; the wrong result 3 in some situations.
(vector+ 1 2 3)


I tried to find a fix, but did not succeed...  Sorry.

Yours, Niko.

Reply via email to