Branch

  • Properties

  • Git HTTP https://git.kmx.io/facts-db/cl-compare.git
    Git SSH git@git.kmx.io:facts-db/cl-compare.git
    Public access ? public
    Description

    Comparison functions in Common Lisp.

    Users
    thodg
    Tags

  • README.md

  • cl-compare

    Compare anything

    (compare 'a 'b)
    => -1
    
    (compare 'a "a")
    => -1
    
    (compare '(a b 1) '(a b 2))
    => -1

    Your own order

    (defstruct fruit price weight)
    
    (defmethod compare ((a fruit) (b fruit))
      (compare (* (fruit-price a) (fruit-weight a))
               (* (fruit-price b) (fruit-weight b))))
    
    (let ((apple (make-fruit :price 0.3 :weight 100))
          (orange (make-fruit :price 4.5 :weight 1000)))
      (compare apple orange))
    
    => -1

    Contribute

    This project welcomes COMPARE methods for types that have an atomic type specifier, with an emphasis on speed and functional correctness.

    To submit contributions, just fork the project and submit a pull request.