Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun check (x &optional (l '(I V X L C D M)) (c 1))
- (cond ((null l) 0)
- ((eq x (car l)) c)
- (t (check x (cdr l) (+ c 1)))))
- (defun f (L &optional (last 0)(c 0) (n nil) )
- (let ((ch (> (check (cadr L)) (check (car L))))
- (ch2 (= (check last) (check (cadr L)))))
- (cond ((null L) t )
- ;((null (cadr L)) T)
- ( (= (check (car L)) 0) nil )
- ( (>= c 3) nil )
- ( (and n (>= (check (cadr L)) (check (car L)))) nil)
- ( (and n ch2 ) nil)
- ( (and (> c 0) (not ch)) nil)
- ;( (and (> (check (cadr L) '(I X C M)) 0) ch2) nil)
- ( (eq (car L) (cadr L)) (f (cdr L) (car L) (+ c 1) n) )
- ( t (f (cdr L) (car L) 0 ch)))))
- (trace f)
- ;(trace check)
- (print (f '( M C M X C I )))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement