reverse list - scheme

前端 未结 8 1921
清酒与你
清酒与你 2020-12-11 05:46

I\'m trying to reverse a list, here\'s my code:

(define (reverse list)
  (if (null? list) 
     list
      (list (reverse (cdr list)) (car list))))
         


        
8条回答
  •  無奈伤痛
    2020-12-11 06:22

    I think it would be better to use append instead of cons

    (define (myrev l)
      (if (null? l)
          '()
          (append (myrev (cdr l)) (list (car l)))
      )
    )
    

    this another version with tail recursion

    (define (myrev2 l)
      (define (loop l acc) 
        (if (null? l)
            acc
            (loop (cdr l) (append (list (car l)) acc ))
        )
      )
      (loop l '())
    )
    

提交回复
热议问题