base-comparison.scm 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Mike Sperber, Robert Ransom
  3. (define (symbol=?/2 a b)
  4. (if (or (not (symbol? a))
  5. (not (symbol? b)))
  6. (assertion-violation 'symbol=? "non-symbol argument" a b))
  7. (eq? a b))
  8. (define (boolean=?/2 a b)
  9. (if (or (not (boolean? a))
  10. (not (boolean? b)))
  11. (assertion-violation 'boolean=? "non-boolean argument" a b))
  12. (eq? a b))
  13. (define-n-ary-comparison symbol=? symbol? values symbol=?/2)
  14. (define-n-ary-comparison boolean=? boolean? values boolean=?/2)
  15. (define-n-ary-comparison char=? char? values prim:char=?)
  16. (define-n-ary-comparison char<? char? values prim:char<?)
  17. (define-n-ary-comparison char>? char? values prim:char>?)
  18. (define-n-ary-comparison char<=? char? values prim:char<=?)
  19. (define-n-ary-comparison char>=? char? values prim:char>=?)
  20. (define-n-ary-comparison string=? string? values prim:string=?)
  21. (define-n-ary-comparison string<? string? values prim:string<?)
  22. (define-n-ary-comparison string>? string? values prim:string>?)
  23. (define-n-ary-comparison string<=? string? values prim:string<=?)
  24. (define-n-ary-comparison string>=? string? values prim:string>=?)