The Modular DocBook Stylesheets
PrevDSSSL LibraryNext

decrement-list-members

Name

decrement-list-members — Decrement each member of a list

Synopsis

(decrement-list-members vlist #!optional (decr 1) (floor 0))

Description

Decrement all the values of a list by decr, not to fall below floor.

vlist

The list of values. All the values of this list should be numeric.

decr

The amount by which each element of the list should be decremented. The default is 1.

floor

The value below which each member of the list is not allowed to fall. The default is 0.

Example

(decrement-list-members (0 1 2 3 4 5)) => (0 0 1 2 3 4).

Author

Norman Walsh, <norm@berkshire.net>

Source Code

(define (decrement-list-members vlist #!optional (decr 1) (floor 0))
  ;; Decrement each member of a list
  (let loop ((curlist vlist) (result '()))
    (if (equal? (length curlist) 0)
	result
	(loop (cdr curlist) 
	      (append result 
		      (list (if (<= (car curlist) floor)
				(car curlist)
				(- (car curlist) decr))))))))

PrevHomeNext
copy-stringUpdefault-lowercase-list