Recursion 创建列表,使最小值在scheme中递归地与列表分离?

Recursion 创建列表,使最小值在scheme中递归地与列表分离?,recursion,scheme,Recursion,Scheme,我需要创建一个列表,使min在列表中始终位于外部 范例 输入(1 2 3) 产出(1(2)(3)) 这是我的代码,假设数字是按降序排列的,我希望稍后扩展到一般情况 我得到了一个意外的输出(3 2 1 0-1-2-3()) 我如何在任何想法中实现这一点?” (定义(查找最小静止L) (如果(空)(cdr L))(let((x(car L)))(cons x'(())) let*((ret ans(查找最小休息(cdr L)))(cur elem(car L))(mini(car ret ans))

我需要创建一个列表,使min在列表中始终位于外部

范例

输入(1 2 3)

产出(1(2)(3))

这是我的代码,假设数字是按降序排列的,我希望稍后扩展到一般情况

我得到了一个意外的输出(3 2 1 0-1-2-3())

我如何在任何想法中实现这一点?”

(定义(查找最小静止L) (如果(空)(cdr L))(let((x(car L)))(cons x'(())) let*((ret ans(查找最小休息(cdr L)))(cur elem(car L))(mini(car ret ans))(rem列表(cdr ret ans))) (cond((>cur elem mini)(cons cur elem(cons mini rem list‘‘‘‘‘‘‘‘)’)

代码

(define (find-min-rest L)
    (if (null? (cdr L)) (let ( (x (car L))) (cons x '( ())))
        (let* ((ret-ans (find-min-rest (cdr L))) (cur-elem (car L)) (mini (car ret-ans)) (rem-list (cdr ret-ans)))
          (cond ((> cur-elem mini)  (cons cur-elem (cons mini rem-list)))))))
代码

(define (find-min-rest L)
    (if (null? (cdr L)) (let ( (x (car L))) (cons x '( ())))
        (let* ((ret-ans (find-min-rest (cdr L))) (cur-elem (car L)) (mini (car ret-ans)) (rem-list (cdr ret-ans)))
          (cond ((> cur-elem mini)  (cons cur-elem (cons mini rem-list)))))))

如果您使用内置的过程,并将问题分解为多个部分,则会更简单。请注意,以下假设存在一个最小值,请根据需要进行调整:

(define (find-min-rest L)
  (let* ((the-min  (apply min L))
         (the-rest (remove the-min L)))
    (list the-min the-rest)))

(find-min-rest '(1 2 3))
=> '(1 (2 3))

如果您使用内置的过程,并将问题分解为多个部分,则会更简单。请注意,以下假设存在一个最小值,请根据需要进行调整:

(define (find-min-rest L)
  (let* ((the-min  (apply min L))
         (the-rest (remove the-min L)))
    (list the-min the-rest)))

(find-min-rest '(1 2 3))
=> '(1 (2 3))

请张贴您迄今为止所写的代码,指出您遇到问题的确切部分代码是(定义(查找最小休息L)(如果(空)(cdr L))(let((x(car L)))(cons x'(()))(let*((ret ans)(查找最小休息(cdr L))(cur elem(car L))(mini(car ret ans))(rem list(cdr ret ans)))(cond(>cur elem mini)(cons cur elem(cons mini-rem list()(()))(cons mini-rem list)())(cons x())(cons mini-rem list)()()))()((((((((40(cond((>cur-elem mini)(cons-cur-elem(cons-mini-rem-list()())())))