В основном у меня есть проблема, вот информация, необходимая для ее решения.
PigLatin.Pig Latin - это способ перестановки букв в английских словах для развлечения.Например, предложение «свинья латинская глупо» становится «igpay atinlay isway upidstay».
Гласные («a», «e», «i», «o» и «u») обрабатываются отдельно от согласных (любая буква не является гласной).Для простоты мы будем считать «у» всегда согласной.Хотя существуют различные формы Pig Latin, мы будем использовать следующие правила:
(1) К словам из двух букв или менее просто добавляется «путь» в конце.Таким образом, «а» становится «прочь».
(2) В любом слове, начинающемся с согласных, согласные перемещаются до конца, и добавляется «ay».Если слово начинается с более чем двух согласных, двигайте только первые две буквы.Таким образом, «привет» становится «эллохай», а «строка» становится «рингстай».
(3) К любому слову, начинающемуся с гласной, просто добавляется «путь» в конце.Поэтому «объяснение» становится «объяснением».
Напишите функцию (pig-latin L), которая потребляет непустое значение (listof Str) и возвращает Str, содержащий слова в L, преобразованные в Pig Latin.Каждое значение в L должно содержать только строчные буквы и иметь длину не менее 1.
Я понимаю, что мне нужно установить три основных условия здесь, я борюсь с Racket и изучаю правильный синтаксис для записииз моих решений.сначала мне нужно создать условия, которые смотрят на строку и проверяют, равна ли она длине 2 или меньше, чтобы соответствовать условию (1).Для (2) мне нужно посмотреть на первые два символа в строке, я предполагаю, что я должен преобразовать строку в список символов (строка-> список).Для (3) я понимаю, что мне просто нужно посмотреть на первый символ в строке, я в основном должен повторить то, что я сделал с (2), но просто посмотреть на первый символ.
Хотя я не знаю, как управлять списком символов.Я также не знаю, как убедиться, что длина строки соответствует критериям.Любая помощь будет оценена.У меня практически нет кода для моей проблемы, так как я озадачен тем, что здесь делать.
Примером проблемы является
(pig-latin (list "this" "is" "a" "crazy" "exercise")) =>
"isthay isway away azycray exerciseway"