Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 0.92 KB | None | 0 0
  1. (define-unit bag-stack@
  2.   (import)
  3.   (export bag^)
  4.  
  5.   (define (bag? xs)
  6.     (list? xs))
  7.  
  8.   (define (bag-empty? xs)
  9.     (null? xs))
  10.  
  11.   (define empty-bag '())
  12.  
  13.   (define (bag-insert xs x)
  14.     (cons x xs))
  15.  
  16.   (define (bag-peek xs)
  17.     (car xs))
  18.  
  19.   (define (bag-remove xs)
  20.     (cdr xs)))
  21.  
  22. -----------------------
  23.  
  24. (define-unit bag-fifo@
  25.   (import)
  26.   (export bag^)
  27.  
  28.   (define (bag? xs)
  29.     (and (cons? xs)
  30.          (list? (car xs))
  31.          (list? (cdr xs))))
  32.  
  33.   (define (bag-empty? xs)
  34.     (and (null? (car xs))
  35.          (null? (cdr xs))))
  36.  
  37.   (define empty-bag (cons '() '()))
  38.  
  39.   (define (bag-insert xs x)
  40.     (cons (cons x (car xs)) (cdr xs)))
  41.  
  42.   (define (bag-peek xs)
  43.     (if (null? (cdr xs))
  44.         (car (reverse (car xs)))
  45.         (car (cdr xs))))
  46.  
  47.   (define (bag-remove xs)
  48.     (if (null? (cdr xs))
  49.         (cons '() (cdr (reverse (car xs))))
  50.         (cons (car xs) (cdr (cdr xs)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement