Scheme 方案问题较小

Scheme 方案问题较小,scheme,Scheme,这个问题需要我完成一个更小的函数,它使用一个字符串并生成一个字符串。使用的字符串仅由数字字符组成,我们称之为数字(1-9,0)。生成的字符串将由长度为1的字符串(单个数字)组成,该字符串通过重复删除字符串中的第一个或最后一个数字而获得,具体取决于哪个数字的值更大 比如说, (smaller "5284") => (smaller "284") => (smaller "28") => (smaller "2") => "2" (smaller "131") =>

这个问题需要我完成一个更小的函数,它使用一个字符串并生成一个字符串。使用的字符串仅由数字字符组成,我们称之为数字(1-9,0)。生成的字符串将由长度为1的字符串(单个数字)组成,该字符串通过重复删除字符串中的第一个或最后一个数字而获得,具体取决于哪个数字的值更大

比如说,

(smaller "5284")
=> (smaller "284")
=> (smaller "28")
=> (smaller "2")
=> "2"
(smaller "131")
=> (smaller "13")
=> (smaller "1")
=> "1"
如果(第一个数字和最后一个数字之间)有平局,则删除最后一个数字

比如说,

(smaller "5284")
=> (smaller "284")
=> (smaller "28")
=> (smaller "2")
=> "2"
(smaller "131")
=> (smaller "13")
=> (smaller "1")
=> "1"
那么,我如何为这个问题编写方案代码呢?
非常感谢

像这样的东西怎么样

(define smaller
  (lambda (str)
    (cond
      [(= 1 (string-length str)) str]
      [(> (string-ref str 0) (string-ref str (- (string-length str) 1))) (smaller (substring str 0 (- (string-length str) 1)))]
      [else (smaller (substring str 1))])))

任务的哪一部分你遇到了麻烦?关于这个问题,你们的课堂讲稿或课本给了你们什么提示?请不要用完整的答案直接回答家庭作业问题。海报通过这种方式什么也学不到,其他人最终试图维护他们稍后编写的代码。让海报展示他们迄今为止所做的尝试,解释它是如何不起作用的,并给他们指点如何解决它。这样,他们实际上必须理解解决方案,并因此学到一些东西。给出答案没有任何教育价值。谢谢,你说得对。很抱歉,我还没有第一眼看到[家庭作业]标签。它可能在你发布时不在那里;我添加了它作为编辑。不过,你可以在开头的一句话中看出这是一个家庭作业:“这个问题需要我完成”和其他内容的措辞:“消耗的字符串”,“我们将称之为”,“获得的字符串”,最后一段是“我如何写……这个问题?”。所有明显的迹象表明有人在寻找家庭作业答案。:)