Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;.
- ;;1. Definir la estructura
- (define-struct datos-persona
- (nombre apellido email telefono))
- (define datosPersonaA
- (make-datos-persona "Ana" "Fernandez" "ana@gmail.com" 123456))
- (define datosPersonaB
- (make-datos-persona "Juan" "Caicedo" "juan@gmail.com" 23132))
- ;;¿Que pasa si cambia el nombre de ana a Maria ¿Como queda la estructura?
- ;;(make-datos-persona "Maria" "Fernandez" "ana@gmail.com" 123456)
- ;;¿Que pasa si cambio el correo juan@gmail.com a juan@hotmail.com
- ;;(make-datos-persona "Juan" "Caicedo" "juan@hotmail.com" 23132)
- ;;¿Que pasa si cambio el apellido de ana a 'DelaSpriella
- ;; (make-datos-persona "Ana" 'DelaSpriella "ana@gmail.com" 123456)
- ;;Autor: Carlos A Delgado
- ;;Fecha: 20 de Enero de 2020
- ;;Contrato: cambiar-datos: numero, datos-persona, simbolo -> datos-persona
- ;;Propósito: Esta función permite cambiar los datos de datos-persona de acuerdo a la entrega numerica y a un simbolo que se ingresa
- ;;Ejemplos
- ;; numero = 1, simbolo = 'Maria, datosP = datosPersonaA
- ;; El retorno (make-datos-persona 'Maria "Fernandez" "ana@gmail.com" 123456)
- ;; numero = 2, simbolo = 'Duque datos = datosPersonaB
- ;; El retorno es(make-datos-persona "Juan" 'Duque "juan@gmail.com" 23132)
- ;; numero = 3, simbolo = 'pepito@gmail.com, datosP = datosPersonaB
- ;; El retorno (make-datos-persona "Juan" "Caicedo" 'pepito@gmail.com 23132)
- (define (cambiar-datos num p1 sym)
- (cond
- [(= num 1)
- (make-datos-persona
- sym
- (datos-persona-apellido p1)
- (datos-persona-email p1)
- (datos-persona-telefono p1))]
- [(= num 2)
- (make-datos-persona
- (datos-persona-nombre p1)
- sym
- (datos-persona-email p1)
- (datos-persona-telefono p1))]
- [(= num 3)
- (make-datos-persona
- (datos-persona-nombre p1)
- (datos-persona-apellido p1)
- sym
- (datos-persona-telefono p1))]
- [else (error "Opción no encontrada")
- ])
- )
- ;;Pruebas
- (check-expect (cambiar-datos 1 datosPersonaA 'Maria) (make-datos-persona 'Maria "Fernandez" "ana@gmail.com" 123456))
- (check-expect (cambiar-datos 2 datosPersonaB 'Duque) (make-datos-persona "Juan" 'Duque "juan@gmail.com" 23132))
- (check-expect (cambiar-datos 3 datosPersonaB 'pepito@gmail.com) (make-datos-persona "Juan" "Caicedo" 'pepito@gmail.com 23132))
- (check-error (cambiar-datos 4 datosPersonaA 'Pepito))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement