Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. (define (znak? x)
  2. (member x '(+ - / *)))
  3.  
  4. (define (prioritet sym)
  5. (cond
  6. ((member sym '(< >)) 0)
  7. ((member sym '(+ -)) 1)
  8. ((member sym '(* /)) 2)))
  9.  
  10. (define (rpn lst)
  11. (define (checker list stack)
  12. (or
  13. (and (null? list) stack)
  14. (let ((x (car list)))
  15. (or
  16. (and (equal? x '<) (checker (cdr list) (cons x stack)))
  17. (and (znak? x) (if (and (not (null? stack)) (< (prioritet x) (prioritet (car stack))))
  18. (cons (car stack) (checker list (cdr stack)))
  19. (checker (cdr list) (cons x stack))))
  20. (and (equal? x '>) (if (equal? (car stack) '< )
  21. (checker (cdr list) (cdr stack))
  22. (cons (car stack) (checker list (cdr stack)))))
  23. (cons x (checker (cdr list) stack))))))
  24. (checker lst '()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement