es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo cambiar valores absolutos en una lista en Scheme.

Intenté cambiar los valores negativos en la lista a valores positivos.
Pero mi código tiene algunos problemas. :/
Por favor ayúdame.
Este es mi código:

(define (myabs lista)
(cond
((null? lista) ‘())
(cons ((abs (car lista)) (myabs (cdr lista))))
))
(display (myabs ‘(-3 5 6 -2)))

Pero el resultado es el siguiente:

0 (myabs (cdr lista))
En la línea 4 de “./main.sc”

1 (myabs (cdr lista))
En la línea 4 de “./main.sc”

2 (myabs (cdr lista))
En la línea 4 de “./main.sc”

3 (myabs ‘-3 5 6 -2))
En la línea 8 de “./main.sc”

La imagen siguiente muestra el resultado del compilador de Scheme en línea.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un error de sintaxis en tu código. La función cons debería ser llamada fuera de la llamada a la función (abs (car list)). Intenta modificar tu código de esta manera:

    (define (myabs lst) 
      (cond
        ((null? lst) '())
        (else (cons (abs (car lst)) (myabs (cdr lst))))
      )
    )
    (display (myabs '(-3 5 6 -2)))
    

    Esto debería dar como salida (3 5 6 2), que son los valores positivos de la lista de entrada.

Comments are closed.