【发布时间】:2019-11-12 15:44:09
【问题描述】:
我需要创建一个函数来识别列表是按升序还是降序排列。如果列表是升序,则函数将输出“升序”,如果列表是降序,则函数将输出“降序”,如果列表既不递增也不递减,则函数将输出“混合”。
到目前为止,这是我的代码,显然它不起作用。我对在 Racket 中进行递归还是很陌生,所以我很确定这不是你正确进行递归的方式。我已经看到了确定列表是否按升序排列的解决方案,但这些没有帮助,因为在这里我必须在这里检查 3 种不同的情况,包括基本情况。
(define (order? L)
(cond
[(empty? L) '()]
[(> (first L) (first (rest L)))
(order? (rest L)) "descending"]
[(< (first L) (first (rest L)))
(order? (rest L)) "ascending"]
[else ("mixed")]))
这是显示 3 种不同情况的 3 个示例。
(check-expect (order? (list 2 4 6 8)) "ascending")
(check-expect (order? (list 2 8 4 1 9 10 2)) "mixed")
(check-expect (order? (list 9 8 7 6 3 2)) "descending")
【问题讨论】:
标签: string list recursion racket