mirror

;;;用于判断当前的sequence的值是否是对称的。
(defun mirror? (s)
  (let ((len (length s)))
    (and (evenp len)
	 (do ((forward 0 (+ forward 1))
	      (back (- len 1) (- back 1)))
	     ((or (> forward back)  ;;针对情况:完全对称,当执行完最后一个字符判断以后的结果。
		  (not (eql (elt s forward) ;;如果两个元素不等的话,就退出。
			    (elt s back))))
	      (> forward back))))))

你可能感兴趣的:(mirror)