Advertisement
cardel

Ejemplo FDP 08 de Agosto

Aug 8th, 2020
2,284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.51 KB | None | 0 0
  1. ;;Autor: Carlos A Delgado
  2. ;;Fecha: 08 de Agosto de 2020
  3. ;;COntrato: suma-lista: lista de numeros -> numero
  4. ;;Propósito: Toma una lista de 4 números y nos retorna su suma
  5. ;;Ejemplos
  6. ;;(suma-lista (cons 1 (cons 2 (cons 3 (cons 4 empty)))) ) 10
  7. ;;(suma-lista (cons -1 (cons 1 (cons 4 (cons -6 empty)))) ) -2
  8. (define (suma-lista lst)
  9.   (if
  10.    (cons? lst)
  11.    (+ (first lst) (first (rest lst)) (first (rest (rest lst))) (first (rest (rest (rest lst)))))
  12.    (error "Debe ingresarse una lista de números")))
  13.  
  14. (check-expect (suma-lista (cons 1 (cons 2 (cons 3 (cons 4 empty)))) ) 10)
  15. (check-expect (suma-lista (cons -1 (cons 1 (cons 4 (cons -6 empty)))) ) -2)
  16.  
  17. ;;Autor: Carlos A Delgado
  18. ;;Fecha: 08 de Agosto de 2020
  19. ;;Contrato: hay-mula?: lista de símbolos -> booleano
  20. ;;Propósito: Esta función sirve para saber si en una lista de símbolos
  21. ;;Ejemplos
  22. ;;(hay-mula? (cons 'perro (cons 'gato (cons 'mula (cons 'caballo empty)))) ) #T
  23. ;;(hay-mula? (cons 'perro (cons 'gato (cons 'vaca (cons 'caballo empty)))) ) #F
  24. (define (hay-mula? lst)
  25.   (cond
  26.     [(not (cons? lst)) (error "La entrada debe ser una lista de símbolos")]
  27.     [(equal? (first lst) 'mula) #T]
  28.     [(equal? (first (rest lst)) 'mula) #T]
  29.     [(equal? (first (rest (rest lst))) 'mula) #T]
  30.     [(equal? (first (rest (rest (rest lst)))) 'mula) #T]
  31.     [else #F]
  32.     ))
  33.  
  34. (check-expect (hay-mula? (cons 'perro (cons 'gato (cons 'mula (cons 'caballo empty)))) ) #T)
  35. (check-expect (hay-mula? (cons 'perro (cons 'gato (cons 'vaca (cons 'caballo empty)))) ) #F)
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement