Схема вопроса меньше

#scheme

#схема

Вопрос:

Вопрос требует, чтобы я выполнил функцию меньшего размера, которая использует строку и выдает строку. Потребляемая строка состоит только из цифровых символов if, которые мы будем называть цифрами (1-9,0). Созданная строка будет состоять из строки длиной 1 (одна цифра), полученной путем многократного удаления первой или последней цифры в строке, в зависимости от того, какая из них больше по значению.

Например,

 (smaller "5284")
=> (smaller "284")
=> (smaller "28")
=> (smaller "2")
=> "2"
  

Если есть связь (между первой и последней цифрой), удалите последнюю.

Например,

 (smaller "131")
=> (smaller "13")
=> (smaller "1")
=> "1"
  

Итак, как мне написать код схемы для этого вопроса?
Большое спасибо!

Комментарии:

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))])))
  

Комментарии:

1. Пожалуйста, не отвечайте напрямую на вопросы домашнего задания с полным решением. Плакат ничему не учится таким образом, и другие в конечном итоге пытаются поддерживать код, который они напишут позже. Попросите плакат показать, что они пробовали до сих пор, объяснить, почему это не работает, и дать им указания о том, как выяснить, как это исправить. Таким образом, они действительно должны понять решение и, следовательно, чему-то научиться. Предоставление ответа не имеет никакой образовательной ценности. Спасибо.

2. Вы правы. Извините, я не видел тега [домашнее задание] с первого взгляда.

3. Вероятно, его там не было, когда вы публиковали; я добавил его в качестве правки. Вы могли бы сказать, что это было домашнее задание, хотя, по первому предложению: «Вопрос требует, чтобы я завершил» и формулировке других вещей: «использованная строка», «которую мы назовем», «полученная строка» и последнему абзацу, в котором говорится «Как мне написать … для этого вопроса?». Все очевидные признаки того, что кто-то ищет ответы на домашние задания. 🙂