【发布时间】:2017-12-14 18:50:29
【问题描述】:
这是我的球拍问题:
定义一个将列表作为参数的函数。它应该返回一个布尔值(即#t 或#f),指示列表是否按升序排序。你可能不会使用内置的排序?功能。您的实现必须是递归的。
输入:同质数据类型的元素列表,数字或字符串。
输出: 一个布尔值,指示列表的元素是否严格按升序排序。如果列表包含异构数据类型,则抛出错误(使用错误函数)并显示消息“错误:列表包含异构数据类型”。
所以当我输入这个函数时必须给我这个错误
(my-sorted? '(7 "垃圾邮件" 9)) !错误:列表包含异构数据类型
但对我来说它给了我这个
(my-sorted? '(7 "垃圾邮件" 9)) : 合同违约 预期:真实? 给定:“垃圾邮件” 论点位置:第二 其他论点...:
这里有什么
(define (my-sorted-int? lst)
(define size (length lst))
(if (< size 2)
#t
(if (null? lst)
#t
(if (> (car lst) (car (rest lst))) <======= Gave me Error
#f
(my-sorted-int? (rest lst) )))))
(define (my-sorted-string? lst)
(define size (length lst))
(if (< size 2)
#t
(if (null? lst)
#t
(if (string>? (car lst) (car (rest lst)))
#f
(my-sorted-string? (rest lst) )))))
(define (my-sorted? lst)
(if (string? (car lst))
(my-sorted-string? lst)
(my-sorted-int? lst)))
【问题讨论】:
-
显示你目前拥有的东西。
-
我发布了我所拥有的,非常感谢
-
你可以在 my-sorted-int 中插入一个? that (car (rest last)) 是一个整数 - 如果不是则显示错误。
-
你现在可以检查我的代码,当我输入我的代码时会显示错误
-
因为 > 需要两个整数,并且 (car (rest last)) 可能是您需要在之前插入支票的字符串。
标签: racket