Scheme 仅按方案按降序排列数字
我想写一个函数,它只保留降序数,去掉升序数 例如:Scheme 仅按方案按降序排列数字,scheme,Scheme,我想写一个函数,它只保留降序数,去掉升序数 例如: (降序(653128)) 应该给我(6531) 谢谢。列表是将对象考虑到列表中的结果。或者一个空的列表 考虑什么?这是一个内置的操作 (define (plain-cons x xs) (cond ((null? xs) (list x)) (else (cons x xs)))) ; using the built-in 降序列表是将对象降到降序列表上的结果。或者一个空的列表 什么是下降?这是一种考虑,结果列表也在
(降序(653128))
应该给我(6531)
谢谢。列表是将对象考虑到列表中的结果。或者一个空的列表 考虑什么?这是一个内置的操作
(define (plain-cons x xs)
(cond
((null? xs) (list x))
(else (cons x xs)))) ; using the built-in
降序列表是将对象降到降序列表上的结果。或者一个空的列表
什么是下降?这是一种考虑,结果列表也在下降:
; (descend-cons 3 '()) -> (list 3)
; (descend-cons 8 '(7 3)) -> (cons 8 '(7 3))
; (descend-cons 5 '(8 7 3)) -> (descend-cons 5 '(7 3))
(define (descend-cons x xs)
(cond
((null? xs) (list x))
(else
(let ((a (car xs)))
(cond
((>= x a) ; { 8 '(7 3)) } -> '(8 7 3)
.... )
(else ; { 5 '(8 7 3)) } -> { 5 '(7 3) }
(.... x
(cdr xs))))))))
有了这些,任务很容易。我们将编写函数descending
,它将一个列表转换为一个降序列表,如下所示
; (descending '()) -> '()
; (descending '(x y z ...)) -> (descend-cons x (..... '(y z ...)))
(define (descending lst)
(cond
((null? lst) lst)
(else
(let ((x (car lst))
(xs (cdr lst)))
(...... x
(...... xs))))))
所期望的第二个参数是什么?它必须是一个降序列表
我们可以从列表'(y z…
)中创建一个降序列表吗?我们的武器库中有什么功能可以为我们做到这一点?什么是notAsc
?您的意思是“降序”
?您确定正确调用了该函数吗?您的调用中是否有一个带撇号的输入错误?我将函数修改为下降尼斯解决方案,但是当只有两个术语且不需要至少一个begin
时,为什么cond
?在这里,我首先关注的是正确性。你知道我的程序有什么问题吗?@flower for(5 8 3)你的方法会产生(8 3),但正确答案是(5 3)。你能完成我答案中的代码吗?到时候你就会明白了。不要匆忙,慢慢读,确保你在继续下一步之前理解了每一点。如有需要,欢迎您要求澄清。