Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define-unit bag-stack@
- (import)
- (export bag^)
- (define (bag? xs)
- (list? xs))
- (define (bag-empty? xs)
- (null? xs))
- (define empty-bag '())
- (define (bag-insert xs x)
- (cons x xs))
- (define (bag-peek xs)
- (car xs))
- (define (bag-remove xs)
- (cdr xs)))
- -----------------------
- (define-unit bag-fifo@
- (import)
- (export bag^)
- (define (bag? xs)
- (and (cons? xs)
- (list? (car xs))
- (list? (cdr xs))))
- (define (bag-empty? xs)
- (and (null? (car xs))
- (null? (cdr xs))))
- (define empty-bag (cons '() '()))
- (define (bag-insert xs x)
- (cons (cons x (car xs)) (cdr xs)))
- (define (bag-peek xs)
- (if (null? (cdr xs))
- (car (reverse (car xs)))
- (car (cdr xs))))
- (define (bag-remove xs)
- (if (null? (cdr xs))
- (cons '() (cdr (reverse (car xs))))
- (cons (car xs) (cdr (cdr xs)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement