Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (myreverse string)
- (letrec
- ((reverse (lambda (string reversed)
- (if (= (length string) 0)
- reversed
- (reverse (cdr string) (cons (car string) reversed))
- )
- )
- ))
- (reverse string '())
- )
- )
- (define (palindrome string boolean)
- (if boolean
- (append string (myreverse string))
- (append string (cdr (myreverse string)))
- )
- )
- (define (palindrome? string)
- (letrec
- ((split (lambda (string1 string2)
- (if (= (length string1) (length string2))
- (list string1 string2)
- (if (= (length string1) (+ (length string2) 1))
- (list (cdr string1) string2)
- (split (cdr string1) (append string2 (list (car string1))))
- )
- ))
- ))
- (let
- ((splitted (split string '())))
- (equal? (myreverse (car splitted)) (cadr splitted))
- )
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement