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