Advertisement
cardel

Untitled

Mar 15th, 2021
3,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.64 KB | None | 0 0
  1.  
  2.  
  3. (define listaP (list "hola" (list "baba" "cosa") (list (list "zapato") "oso")))
  4.  
  5. ;;Nos piden el string mayor de una lista de listas, varios enfoques
  6. ;;Transformar la lista de listas en una lista y luego sacar el mayor
  7.  
  8. ;;Transformar la lista de listas en una lista
  9.  
  10. ;;Autor: Carlos A Delgado
  11. ;;Fecha: 15 de Marzo de 2021
  12. ;;Contrato: transformar-lista: lista de listas de string -> lista de string
  13. ;;Descripción: Esta función transforma una lista de listas en una sola lista
  14. ;;Ejemplos
  15. ;;(list "hola" (list "baba" "cosa") (list (list "zapato") "oso")) -> (list "hola" "baba" "cosa" "zapato" "oso")
  16. (define (transformar-lista lsst)
  17.   (cond
  18.     [(empty? lsst) '()]
  19.     [(cons? (first lsst))
  20.      (append
  21.       (transformar-lista (first lsst))
  22.       (transformar-lista (rest lsst)))]
  23.     [else
  24.      (cons
  25.       (first lsst)
  26.       (transformar-lista (rest lsst))
  27.       )]))
  28.  
  29. (transformar-lista listaP)
  30.  
  31.  
  32. ;;Ordenar
  33.  
  34. ;;insert: string, lista de strings -> lista de strings
  35. (define (insert str lst)
  36.   (cond
  37.     [(empty? lst) (list str)]
  38.     [(string>? str (first lst)) (cons str lst)]
  39.     [else
  40.      (cons
  41.       (first lst)
  42.       (insert str (rest lst)))]))
  43.  
  44. ;;ordenar: lista de string -> lista de string
  45. ;;Descripción: Retorna la lista de string ordenada de mayor a menor
  46. (define (ordenar lst)
  47.   (cond
  48.     [(empty? lst) empty]
  49.     [else (insert (first lst) (ordenar (rest lst)))]))
  50.  
  51.  
  52. (ordenar (transformar-lista listaP))
  53.  
  54. ;;obtener-mayor: lista de string -> string
  55. ;;descripción: esta función me retorna el string mayor
  56.  
  57. (define (obtener-mayor lst)
  58.   (first (ordenar (transformar-lista lst))))
  59.  
  60.  
  61. (obtener-mayor listaP)
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement