Advertisement
Jobjob

Programmation déclarative - Q1AB - 08/2012

Jan 2nd, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.09 KB | None | 0 0
  1. (define (myreverse string)
  2.   (letrec
  3.       ((reverse (lambda (string reversed)
  4.                     (if (= (length string) 0)
  5.                         reversed
  6.                         (reverse (cdr string) (cons (car string) reversed))
  7.                         )
  8.                     )
  9.                 ))
  10.     (reverse string '())
  11.     )
  12.   )
  13.  
  14.  
  15. (define (palindrome string boolean)
  16.        
  17.       (if boolean
  18.           (append string (myreverse string))
  19.           (append string (cdr (myreverse string)))
  20.           )
  21.   )
  22.  
  23. (define (palindrome? string)
  24.   (letrec
  25.       ((split (lambda (string1 string2)
  26.                 (if (= (length string1) (length string2))
  27.                     (list string1 string2)
  28.                     (if (= (length string1) (+ (length string2) 1))
  29.                         (list (cdr string1) string2)
  30.                         (split (cdr string1) (append string2 (list (car string1))))
  31.                     )
  32.                 ))
  33.               ))
  34.     (let
  35.         ((splitted (split string '())))
  36.       (equal? (myreverse (car splitted)) (cadr splitted))
  37.       )
  38.     )
  39.   )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement