(use srfi-1) (define (reverse n) (define (_inner k rn) (if (= 0 k) rn (_inner (quotient k 10) (append (list (modulo k 10)) rn)))) (let ((rns (_inner n '()))) (fold (lambda (x acc) (+ acc (* (expt 10 (car x)) (cadr x)))) 0 (zip (iota (length rns)) rns)))) (define (palinpalin? p) (eqv? p (reverse p)))