Advertisement
Guest User

Untitled

a guest
Nov 2nd, 2018
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.78 KB | None | 0 0
  1. (defun check (x &optional (l '(I V X L C D M)) (c 1))
  2.     (cond ((null l) 0)
  3.           ((eq x (car l)) c)
  4.           (t (check x (cdr l) (+ c 1)))))
  5.  
  6. (defun f (L &optional (last 0)(c 0) (n nil) )
  7.     (let ((ch (> (check (cadr L)) (check (car L))))
  8.           (ch2 (= (check last) (check (cadr L)))))
  9.      (cond ((null L) t )
  10.          ;((null (cadr L)) T)
  11.           ( (= (check (car L)) 0) nil )
  12.           ( (>= c 3) nil )
  13.           ( (and n (>= (check (cadr L)) (check (car L)))) nil)
  14.           ( (and n ch2 ) nil)
  15.           ( (and (> c 0) (not ch)) nil)
  16.           ;( (and (> (check (cadr L) '(I X C M)) 0) ch2)  nil)
  17.           ( (eq (car L) (cadr L)) (f (cdr L) (car L) (+ c 1) n) )
  18.           ( t (f (cdr L) (car L) 0 ch)))))
  19.  
  20. (trace f)
  21. ;(trace check)
  22.  
  23. (print (f '( M C M X C I  )))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement