Advertisement
jovanovski

ВИ Палиндром

May 9th, 2013
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.13 KB | None | 0 0
  1. (defun izvadizagradi (lista noval)
  2.   (if (null lista)
  3.     noval
  4.     (if (atom (car lista))
  5.     (izvadizagradi (cdr lista) (append noval (list (car lista))))
  6.     (izvadizagradi (cdr lista) (append noval (izvadizagradi (car lista) '())))
  7.     )
  8.     )
  9.   )
  10.  
  11. (defun reverse (lista noval)
  12.   (if (null lista)
  13.     noval
  14.       (reverse (cdr lista) (append (list (car lista)) noval))
  15.     )
  16.   )
  17.  
  18. (defun pomosna (lista obratno)
  19.   (if(null lista)
  20.       T
  21.       (if (equal (car lista) (car obratno))
  22.         (pomosna (cdr lista) (cdr obratno))
  23.         NIL
  24.         )
  25.   )
  26.   )
  27.  
  28.  
  29. (defun vtorpalindrom (lista)
  30.   (if (pomosna lista (reverse  lista '()))
  31.     T
  32.     NIL
  33.     )
  34.   )
  35.  
  36. (defun ostatok (sozagradi staral lista noval)
  37.   (if (vtorpalindrom (append staral noval))
  38.     (append sozagradi noval)
  39.     (ostatok sozagradi staral (cdr lista) (append (list (car lista)) noval))
  40.     )
  41. )
  42.  
  43. (defun palindrom (lista)
  44.   (if (pomosna (izvadizagradi lista '()) (reverse (izvadizagradi lista '()) '()))
  45.     T
  46.     (ostatok lista (izvadizagradi lista '()) (izvadizagradi lista '()) '())
  47.     )
  48.  
  49.   )
  50.  
  51. (palindrom '(1 (2 2 (3) 4) 5 ((4 (3)) 2)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement