Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun cant (l)
- (if (null l)
- 0
- (if (atom (car l))
- (+ 1 (cant (cdr l)))
- (cant (cdr l))
- )
- )
- )
- (defun reemplaza (l a b &optional (salida nil))
- (if (null l)
- salida
- (if (and (eq (car l) a) (> 1 (cant (cdr l))))
- (append (append salida (list b)) (cdr l))
- (reemplaza (cdr l) a b (append salida (list (car l))))
- )
- )
- )
- (defun ultimo (l &optional (salida nil))
- (if (null l)
- salida
- (if (atom (car l))
- (ultimo (cdr l) (car l))
- (ultimo (cdr l) salida)
- )
- )
- )
- (defun intercambia (l)
- (if (> 2 (cant l))
- l
- (if (atom (car l))
- (cons (ultimo l) (reemplaza (cdr l) (ultimo l) (car l)))
- (cons (car l) (intercambia (cdr l)))
- )
- )
- )
- (defun intercambiaTN (l)
- (if (atom l)
- l
- (mapcar 'intercambiaTN (intercambia l))
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment