;; Ported from https://rosettacode.org/wiki/Assertions_in_design_by_contract#Eiffel (require "contract") ;; (set-dynamic *use-contract* nil) (defcontract average-of-absolutes (values) (:in () (assure values) (> (length values) 0)) ; Not redundant, nil is an instance of . ; Could have used instead I guess. (:out (res) (assure res) (>= res 0)) (quotient (reduce #'+ (map ' #'abs values)) (length values))) ;; (average-of-absolutes '(1 3)) ;; (average-of-absolutes '())