DrRacket: Cómo eliminar elementos en una lista que sean mayores/menores que un número específico.
Estoy tratando de escribir un pequeño programa que tomará una lista como entrada y la primera función debe eliminar los valores que sean mayores que 4, y la otra función debe eliminar los valores que sean menores que 4 en los check-expects. Asumo que esta es una solución sencilla, pero no puedo entenderlo ya que soy nuevo en listas y estructuras de datos. Cualquier ayuda será apreciada, aquí está el código:
(define (removehigher lon n)
(cond [(> n lon) (remove lon)]
[(< n lon) true]))
(define (removelower lon n)
(cond [(> n lon) true]
[(< n lon) (remove lon)]))
(check-expect (removehigher (list 0 1 2 3 4 5 6) 4) (list 0 1 2 3))
(check-expect (removelower (list 0 1 2 5 6 7) 3) (list 5 6 7))
davy.ai
En primer lugar, en la función
removehigher
, el procedimientoremove
debería ser llamado con el argumenton
, nolon
, ya quen
es el umbral ylon
es la lista:De manera similar, en la función
removelower
, el procedimientoremove
debería ser llamado conn
como segundo argumento:Ahora,
check-expects
debería funcionar como se espera: