diff --git a/kutils.lisp b/kutils.lisp index 85ab14d..9383b85 100644 --- a/kutils.lisp +++ b/kutils.lisp @@ -41,6 +41,19 @@ additional args provided to the lambda." (return)))) new-form)) +(defun mksymb (&rest args) + "Create a symbol from arguments, upcasing strings as required." + (let ((args (mapcar (lambda (arg) + (if (stringp arg) + (string-upcase arg) + arg)) + args))) + (apply #'symb args))) + +(defun mkkw (&rest args) + "Create a keyword from its arguments." + (intern (string (apply #'mksymb args)) "KEYWORD")) + ;;; hash-table functions. diff --git a/package.lisp b/package.lisp index 1a32c16..8d22917 100644 --- a/package.lisp +++ b/package.lisp @@ -12,7 +12,8 @@ #:build-list #:partial #:macroexpand-n - #:count-macroexpansions + #:mksymb + #:mkkw #:enable-hash-table-reader #:hashkeys #:sethash