cl-ds / data /repos /clache /src /utils.lisp
j14i's picture
3375 CL macro transformation examples from 85 libraries
43203b4 verified
Raw
History Blame Contribute Delete
866 Bytes
(in-package :clache)
(use-syntax :annot)
(defun symbol-fqn (symbol)
"Return a fully qualified name of SYMBOL in string. For
example, (symbol-fqn 'if) will return \"COMMON-LISP:IF\"."
(declare (symbol symbol))
(format nil "~A:~A"
(package-name (symbol-package symbol))
(symbol-name symbol)))
(defun object-to-string (object)
"Convert OBJECT into string by using PRINC-TO-STRING if OBJECT is
not a symbol, or by using SYMBOL-FQN if OBJECT is a symbol."
(if (symbolp object)
(symbol-fqn object)
(princ-to-string object)))
(defun md5-hex-string (string)
"Return a MD5 digest of STRING in hex string."
(let* ((octets (babel:string-to-octets string))
(digest (ironclad:digest-sequence 'ironclad:md5 octets))
(hex-string (format nil "~{~2,'0X~}" (coerce digest 'list))))
(string-downcase hex-string)))