Pretty-print a repetition range.
(pretty-print-repeat-range range) → string
We print nothing if the range is just from one to one.
If minimum and maximum are the same,
we just print that.
If the minimum is 0 and the maximum infinity,
we just print
Function:
(defun pretty-print-repeat-range (range) (declare (xargs :guard (repeat-rangep range))) (let ((__function__ 'pretty-print-repeat-range)) (declare (ignorable __function__)) (b* (((repeat-range range) range) ((when (and (equal range.min 1) (equal range.max (nati-finite 1)))) "") ((when (equal range.max (nati-finite range.min))) (pretty-print-number range.min (num-base-dec)))) (str::cat (if (equal range.min 0) "" (pretty-print-number range.min (num-base-dec))) "*" (if (nati-case range.max :infinity) "" (pretty-print-number (nati-finite->get range.max) (num-base-dec)))))))
Theorem:
(defthm stringp-of-pretty-print-repeat-range (b* ((string (pretty-print-repeat-range range))) (common-lisp::stringp string)) :rule-classes :rewrite)