Utility Library
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md
math.lisp
other.lisp
package.lisp
utility.asd
utility.lisp

README.md

utility Manual

Description

A collection of useful macros and functions I use in almost every project.

Installing utility

We can use QuickLisp to load utility:

(ql:quickload :utility)

Some Things inside

  • [macro] (DOHASH ((K V) HASH &body BODY))

    • Iterate through the contents of a hash table.
  • [macro] (ETOUQ (&body BODY))

    • Expand into the macro-time evaluation of BODY.
(etouq (list (car (cons 'car 0))
		      `(quote ,(cdr (list 0 1 2)))))
=> 
1 
  • [macro] (DOBOX ((&rest INTERVAL-FORMS) &rest BODY))

    • Iterate through all coordinates bounded by the dimensions specified in INTERVAL-FORMS.

Example:

(dobox ((x 0 2) (y 0 3)) (print (list x y)))
=> 
(0 0) 
(0 1) 
(0 2) 
(1 0) 
(1 1) 
(1 2)
  • [function] (KEYWORDIFY (SYM))

    • Intern SYM in the keyword package. SYM is a string designator.
  • [macro] (ANY (&body BODY))

    • Expand into a random element of body. Most useful to denote code invariants.
  • [function] (FLOATIFY (X))

    • Coerce X to type 'SINGLE-FLOAT

License Information

This library is released under the MIT License.