Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;.
- (define-struct movie (title producer))
- (define-struct boyfriend (name hair eyes phone))
- (define-struct CD (artist title price))
- (define-struct sweater (material size producer))
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25 de Enero de 2021
- ;;Contrato: cambiar-artista: simbolo, CD -> CD
- ;;Propósito: Esta función permite cambiar el campo artist de una estructura CD que se ingresa
- ;;Ejemplos
- ;;simbolo = 'Madonna CD = (make-CD 'Juanes 'Colombia-querida 5000) retorna: (make-CD 'Madonna 'Colombia-querida 5000)
- ;;simbolo = 'Shakira CD = (make-CD 'Arjona 'Mira-al-cielo 4000) retorna (make-CD 'Shakira 'Mira-al-cielo 4000)
- (define (cambiar-artista cd sim)
- (cond
- [(and (symbol? sim) (CD? cd))
- (make-CD
- sim
- (CD-title cd)
- (CD-price cd))]
- [else (error "La función debe recibir un símbolo y una estructura CD")]
- ))
- (define cdA (make-CD 'Juanes 'Colombia-querida 5000))
- (check-expect (cambiar-artista cdA 'Madonna)
- (make-CD 'Madonna 'Colombia-querida 5000))
- (check-expect (cambiar-artista (make-CD 'Arjona 'Mira-al-cielo 4000) 'Shakira)
- (make-CD 'Shakira 'Mira-al-cielo 4000))
- (check-error (cambiar-artista (make-CD 'Arjona 'Mira-al-cielo 4000) "Aterciopelados"))
- (check-error (cambiar-artista "Juanes" "Aterciopelados"))
- ;;Autor: Carlos A Delgado
- ;;Fecha: 25 de Enero de 2021
- ;;Contrato: mejor-sweater: sweater, sweater -> sweater
- ;;Descripción: Esta función permite saber cual tiene más tamaño (size) de dos estructuras sweater que ingresan
- ;;Ejemplos
- ;; sweaterA: (make-sweater 'Cuero 100 'HBO) sweaterB: (make-sweater 'Lana 200 'TNT)
- ;; Retorno: (make-sweater 'Lana 200 'TNT)
- (define (mejor-sweater sweaterA sweaterB)
- (cond
- [(and (sweater? sweaterA) (sweater? sweaterB))
- (cond
- [(> (sweater-size sweaterA)
- (sweater-size sweaterB))
- sweaterA]
- [else sweaterB])]
- [else (error "Deben ingresar dos estructuras sweater")]
- ))
- (check-expect (mejor-sweater (make-sweater 'Cuero 100 'HBO) (make-sweater 'Lana 200 'TNT)) (make-sweater 'Lana 200 'TNT))
- (check-error (mejor-sweater (make-CD 'Arjona 'Mira-al-cielo 4000) (make-sweater 'Lana 200 'TNT)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement