2010/06/20

Series で L-99 P06

これも reverse 依存としてしまったから、華麗さがない。

;; P06 (*) Find out whether a list is a palindrome.
;; A palindrome can be read forward or backward; e.g. (x a m a x).
(defun palindrome-p (x)
(collect-and
(mapping ((a x)
(b (scan (collect-fn t
(constantly nil)
#'(lambda (x y) (cons y x))
x))))
(eql a b))))
(palindrome-p #z(x a m a x))

0 件のコメント: