Advertisement
camiloordonez01

cola-Listas

Sep 11th, 2018
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.35 KB | None | 0 0
  1. #lang eopl
  2.  
  3. ;;<cola> ::= <cola-vacia>
  4. ;;       ::= <cola-no-vacia> <cola> <int>
  5.  
  6. ;;Procedimientos constructores
  7.  
  8. (define cola-vacia
  9.   (lambda ()
  10.     (list 'cola-vacia)))
  11. (define cola-no-vacia
  12.   (lambda (cola num)
  13.     (list 'cola-no-vacia cola num)))
  14. ;;Procedimentos observadores
  15.  
  16. ;;Predicados
  17. (define cola-vacia?
  18.   (lambda (cola)
  19.     (eqv? (car cola) 'cola-vacia)))
  20. (define cola-no-vacia?
  21.   (lambda (cola)
  22.     (eqv? (car cola) 'cola-no-vacia)))
  23. ;;Extractores
  24.  
  25. (define cola-no-vacia->cola
  26.   (lambda (cola)
  27.     (cadr cola)))
  28. (define cola-no-vacia->valor
  29.   (lambda (cola)
  30.     (caddr cola)))
  31. ;;;Area del programador
  32. ;;;Ejemplos
  33.  
  34. (define top
  35.   (lambda (cola)
  36.     (cond
  37.       [(cola-vacia? (cola-no-vacia->cola cola))(cola-no-vacia->valor cola)]
  38.       [(top (cola-no-vacia->cola cola))])))
  39.  
  40. (define pop
  41.   (lambda (cola)
  42.     (cond
  43.       [(cola-vacia? (cola-no-vacia->cola cola))(cola-vacia)]
  44.       [(cola-no-vacia (pop (cola-no-vacia->cola cola))(cola-no-vacia->valor cola))])))
  45.  
  46. (define suma
  47.   (lambda (cola)
  48.     (cond
  49.       [(cola-vacia? (cola-no-vacia->cola cola))(cola-no-vacia->valor cola)]
  50.       [(+ (cola-no-vacia->valor cola)(suma (cola-no-vacia->cola cola)))])))
  51.  
  52. (define e(cola-no-vacia (cola-no-vacia
  53.          (cola-no-vacia
  54.             (cola-no-vacia (cola-vacia) 3)
  55.               4)
  56.               5)
  57.               6))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement