test-methods.scm 624 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. ; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.
  2. (define-generic g &g)
  3. (define-method &g ((x :number)) 'win)
  4. (define-method &g ((n :integer))
  5. (if (= n 13)
  6. (next-method)
  7. 'ok))
  8. (define-method &g ((s :symbol))
  9. (if (= s 13)
  10. (next-method)
  11. 'ok))
  12. ; (g 1/2) => 'win
  13. ; (g 10) => 'ok
  14. ; (g 13) => 'win
  15. (define-generic elt &elt)
  16. (define-method &elt ((x :vector) y)
  17. (vector-ref x y))
  18. (define-method &elt ((x :string) y)
  19. (string-ref x y))
  20. (define-method &elt ((x :list) y)
  21. (list-ref x y))
  22. ; Generic length
  23. ; (define-generic-function glength ((s :sequence)))