В Dyalog APL Extended от @ Adám⍢ оператор (under) означает сопряжение: примените одну функцию, затем вторую функцию, а затем инверсию первой. Интересно думать о реальных действиях с точки зрения сопряжения:
Задача преобразуется g в другой домен, где она более легко решается с помощью f, а затем снова превращается в исходный домен. Пример из реальной жизни «под наркозом»:
apply anesthetics perform surgery wake up from anesthetics
Вызов
Обратной линии перед g"un" ставится префикс g, и наоборот. Определите любую линию между sи ее обратной, в этом порядке, как «под» s. Для каждой строки fввода по порядку:
- Если
fи происходит обратное, ничего не делать - Если
fне "под" любым другим действием, распечататьf - Если
fнаходится «под» линиейg, выведитеf + " under " + gгде+конкатенация.
вход
Непустая многострочная строка или список строк и т. Д., Состоящий из пробелов и строчных букв (вместо этого вы можете использовать прописные). Ровно одна строка будет начинаться с «un»; и это будет инверсия какой-то другой линии. Ни одна строка не будет пустой.
Выход
Вывод в том же формате, в котором вы вводили данные, или в соответствии с разрешением стандартного ввода-вывода
Тестовые случаи:
Input:
apply anesthetics
perform surgery
unapply anesthetics
Output:
perform surgery under apply anesthetics
Input:
unite asia
establish the silk road
ite asia
Output:
establish the silk road under unite asia
Input:
desire a book
walk to store
take the book
pay for the book
unwalk to store
read the book
Output:
desire a book
take the book under walk to store
pay for the book under walk to store
read the book
Input:
drink excessively
undrink excessively
Output:
[empty string]