Advertisement
cardel

Estructura dentro de estructura

Aug 1st, 2020
2,747
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.14 KB | None | 0 0
  1. ;.
  2.  
  3. (define-struct habitacion (c e l))
  4.  
  5. (define-struct cama (largo ancho))
  6. (define-struct estanteria (nombre descripcion))
  7. (define-struct lampara (marca alto ancho))
  8.  
  9. ;;Autor: Carlos A Delgado
  10. ;;Fecha: 01 de Agosto de 2020
  11. ;;Contrato: revisar-cama: habitación -> texto
  12. ;;Descripción: Esta función nos permite saber si la cama en una habitación es grande o pequeña
  13. ;;Ejemplos
  14. ;;(revisar-cama (make-habitacion (make-cama 8 90) (make-estanteria "J" "Es bonita") (make-lampara "LG" 10 20))) "pequeña"
  15. ;;(revisar-cama (make-habitacion (make-cama 18 90) (make-estanteria "J" "Es bonita") (make-lampara "LG" 10 20))) "grande"
  16. (define (revisar-cama hab)
  17.   (if
  18.    (habitacion? hab)
  19.    (if
  20.     (<= (cama-largo (habitacion-c hab)) 10)
  21.     "pequeña"
  22.     "grande"
  23.     )
  24.    (error "Debe ingresarse una estructura tipo habitación")
  25.    ))
  26.  
  27. (define habitacionA (make-habitacion (make-cama 8 90) (make-estanteria "J" "Es bonita") (make-lampara "LG" 10 20)))
  28. (check-expect (revisar-cama habitacionA) "pequeña")
  29. (check-expect (revisar-cama (make-habitacion (make-cama 18 90) (make-estanteria "J" "Es bonita") (make-lampara "LG" 10 20))) "grande")
  30.  
  31.  
  32.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement