Так что я практиковал ракетный язык начинающего, когда я пришел к этому вопросу.В racket, как заменить слово в строке, используя только функцию string-> list или list-> string?
Запишите функцию str-replace
, которая потребляет строку, персонаж цели и символ замены . Функция создает новую строку, которая идентична потребляемой строке, причем все вхождения целевого символа (если есть) заменены на заменяющий символ. Например, (string-replace "word" #\o #\y) ⇒ "wyrd"
.
Примечание: Я не могу использовать какие-либо встроенные строковые функции, кроме string->list
и list->string
.
Так что я начал с кодом теперь я застрял, как я использую функцию-обертку для этого кода, насколько теперь у меня есть только этот
;; los is list of string
(define(str-replace los)
(+(first los)
(first (rest los))
(first (rest (rest los)))
(first (rest (rest (rest los))))))
Заполнить бланки чем? Я запутался ... И как это будет работать для fuction str-replace, можете ли вы подробно рассказать? – Asha
@ Kiterunner (1) Я переименовал вторую функцию как 'str-replace'. (2) Я не дал вам полного решения, вам нужно подумать о том, что происходит в '...'. Что должна вернуть первая функция в случае, если ей задан пустой список? что должно быть сделано для каждого символа в списке? Вся необходимая информация ждет вас где-нибудь. См. Например https://docs.racket-lang.org/ и https://mitpress.mit.edu/sicp/full-text/book/book.html. – coredump