Advertisement
cardel

FDP 01 de FEB

Feb 1st, 2021
3,440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.91 KB | None | 0 0
  1. ;.
  2.  
  3.  
  4. ;;Autor: Carlos A Delgado S
  5. ;;Fecha: 01 de Febrero de 2021
  6. ;;Contrato: suma-lista: lista de números -> numero
  7. ;;Propósito: Esta función recibe una lista con 4 números y nos retorna su suma
  8. ;;Ejemplos
  9. ;;(cons 1 (cons 2 (cons 3 (cons 4 empty)))) 10
  10. ;;(cons 2 (cons 4 (cons 6 (cons 8 empty)))) 20
  11. ;;(cons 5 (cons 10 (cons 15 (cons 20 empty)))) 50
  12. (define (suma-lista lst)
  13.   (if
  14.    (and (cons? lst) (= (length lst) 4))
  15.    (+
  16.     (first lst) ;;Primer elemento
  17.     (first (rest lst)) ;;Segundo elemento
  18.     (first (rest (rest lst))) ;;Tercer elemento
  19.     (first (rest (rest (rest lst)))) ;;Cuarto elemento
  20.     )
  21.    (error "Debe ingresar una lista de tamaño 4")
  22.    )
  23.   )
  24.  
  25. ;;Pruebas
  26. (check-expect (suma-lista (cons 1 (cons 2 (cons 3 (cons 4 empty))))) 10)
  27. (check-expect (suma-lista (cons 2 (cons 4 (cons 6 (cons 8 empty))))) 20)
  28. (check-expect (suma-lista (cons 5 (cons 10 (cons 15 (cons 20 empty))))) 50)
  29. (check-error (suma-lista (cons 0 (cons 5 (cons 10 (cons 15 (cons 20 empty)))))))
  30.  
  31. ;;Autor: Carlos A Delgado S
  32. ;;Fecha: 01 de Febrero de 2021
  33. ;;Contrato: hay-mula?: lista de símbolos -> booleano
  34. ;;Propósito: Esta función indica si en una lista de cuatro símbolos está la palabra 'mula
  35. ;;Ejemplos
  36. ;;(cons 'perro (cons 'mula (cons 'gato (cons 'lobo empty)))) #true
  37. ;;(cons 'perro (cons 'caballo (cons 'gato (cons 'lobo empty)))) #false
  38. (define (hay-mula? lst)
  39.   (if
  40.    (and (cons? lst) (= (length lst) 4))
  41.    (cond
  42.      [(symbol=? (first lst) 'mula) #true]
  43.      [(symbol=? (first (rest lst)) 'mula) #true]
  44.      [(symbol=? (first (rest (rest lst))) 'mula) #true]
  45.      [(symbol=? (first (rest (rest (rest lst)))) 'mula) #true]
  46.      [else #false]
  47.      )
  48.    (error "Debe ingresar una lista de tamaño 4")
  49.    ))
  50.  
  51.  
  52. (check-expect (hay-mula? (cons 'perro (cons 'mula (cons 'gato (cons 'lobo empty))))) #true)
  53. (check-expect (hay-mula? (cons 'perro (cons 'caballo (cons 'gato (cons 'lobo empty))))) #false)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement