2 ms·
Done a bit hastily, let me know if I got something wrong. But here's a racket (formerly plt scheme) solution: #lang racket (define (palindrome? lst)
by codygman 14y ago
Done a bit hastily, let me know if I got something wrong. But here's a racket (formerly plt scheme) solution:
#lang racket
(define (palindrome? lst)
(equal? lst (foldl cons empty lst)))
(define ITERATIONS 10000000)
(for ([i (in-range ITERATIONS)])
(palindrome? '(i)))
time racket palindrome.rkt
real 0m0.893s
user 0m0.864s
sys 0m0.024s
Here are some other solutions done in racket for those that are interested:
http://www.go-hero.net/jam/13/solutions/0/3/Racket http://www.go-hero.net/jam/13/solutions/0/3/Racket
- stevepike 14y agoI don't think you can just pass '(i) to palindrome? here - doesn't the number need to be converted to a list of digits first? I got #t for everything using your code. I took some code off SO and it bumped up the runtime substantially: #lang racket (require srfi/1 srfi/26) (define (digits->list num (base 10)) (unfold-right zero? (cut remainder <> base) (cut quotient <> base) num)) (define (palindrome? lst) (equal? lst (foldl cons empty lst))) (define ITERATIONS 10000000) (for ([i (in-range ITERATIONS)]) (palindrome? (digits->list i))) racket palindrome.rkt 11.66s user 0.55s system 99% cpu 12.293 total I'm a racket beginner so I'd be interested in better answers to this.