Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (znak? x)
- (member x '(+ - / *)))
- (define (prioritet sym)
- (cond
- ((member sym '(< >)) 0)
- ((member sym '(+ -)) 1)
- ((member sym '(* /)) 2)))
- (define (rpn lst)
- (define (checker list stack)
- (or
- (and (null? list) stack)
- (let ((x (car list)))
- (or
- (and (equal? x '<) (checker (cdr list) (cons x stack)))
- (and (znak? x) (if (and (not (null? stack)) (< (prioritet x) (prioritet (car stack))))
- (cons (car stack) (checker list (cdr stack)))
- (checker (cdr list) (cons x stack))))
- (and (equal? x '>) (if (equal? (car stack) '< )
- (checker (cdr list) (cdr stack))
- (cons (car stack) (checker list (cdr stack)))))
- (cons x (checker (cdr list) stack))))))
- (checker lst '()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement