Skip to content

Instantly share code, notes, and snippets.

@yamasushi
Created April 1, 2015 09:42
Show Gist options
  • Select an option

  • Save yamasushi/a5ae1bfe05c9bacc7504 to your computer and use it in GitHub Desktop.

Select an option

Save yamasushi/a5ae1bfe05c9bacc7504 to your computer and use it in GitHub Desktop.
(define-method -<? ((i <integer>) (j <integer>)) ($ integer? $ / j i) )
(define-method >-? ((j <integer>) (i <integer>)) (-<? i j) )
(define-method ->? ((p <pair>) x ) (eq? x (car p)) )
(define-method -<? ((p <pair>) x ) (eq? x (cdr p)) )
(define-method ->! ((p <pair>) x ) (set-car! p x) )
(define-method -<! ((p <pair>) x ) (set-cdr! p x) )
(define-method <-? (x (p <pair>) ) (->? p x) )
(define-method >-? (x (p <pair>) ) (-<? p x) )
(define-method <-! (x (p <pair>) ) (->! p x) )
(define-method >-! (x (p <pair>) ) (->! p x) )
;-------
(define-method -> ((p <pair>)) (car p) )
(define-method -< ((p <pair>)) (cdr p) )
;-------
(define-method -<= ((v <vector>) (i <integer>) ) (~ v i) )
(define-method >-= ((i <integer>) (v <vector>) ) (-<= v i) )
(define-method -<=? ((v <vector>) (i <integer>) t) (eq? (-<= v i) t) )
(define-method -=<? ((v <vector>) t (i <integer>)) (-<=? v i t) )
(define-method =-<? (t (v <vector>) (i <integer>)) (-<=? v i t) )
(define-method >-=? ((i <integer>) (v <vector>) t) (eq? (-<= v i) t) )
(define-method >=-? ((i <integer>) t (v <vector>) ) (-<=? v i t) )
(define-method =>-? (t (i <integer>) (v <vector>) ) (-<=? v i t) )
(define-method -<=! ((v <vector>) (i <integer>) t ) (set! (~ v i) t) )
(define-method >-=! ((i <integer>) (v <vector>) t ) (-<=! v i t) )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment