+(defconstant +char-code-a+ (char-code #\a))
+
+(defun random-string (&optional (len 10))
+ "Returns a random lower-case string."
+ (declare (optimize (speed 3)))
+ (let ((s (make-string len)))
+ (declare (simple-string s)
+ (dotimes (i len s)
+ (setf (schar s i) (code-char (+ +code-char-a+ (random 26))))))))
+
+
+(defun first-char (s)
+ (declare (simple-string s))
+ (when (and (stringp s) (plusp (length s)))
+ (schar s 0)))
+
+(defun last-char (s)
+ (declare (simple-string s))
+ (when (stringp s)
+ (let ((len (length s)))
+ (when (plusp len))
+ (schar s (1- len)))))