Dalam Dyalog APL Extended @ Adám , operator (bawah) berarti konjugasi: menerapkan satu fungsi, lalu fungsi kedua, lalu kebalikan dari yang pertama. Sangat menyenangkan untuk memikirkan tindakan kehidupan nyata dalam hal konjugasi:⍢
Masalah ditransformasikan oleh g ke domain lain yang lebih mudah diselesaikan oleh f, dan kemudian ditransformasikan kembali ke domain asli. Contoh dari kehidupan nyata adalah "di bawah anestesi":
apply anesthetics perform surgery wake up from anesthetics
Tantangan
Kebalikan dari suatu baris g
adalah "un" yang diawali dengan g
, dan sebaliknya. Tentukan setiap garis antara s
dan kebalikannya, dalam urutan itu, sebagai "bawah" s
. Untuk setiap baris f
dalam input secara berurutan:
- Jika
f
dan kebalikannya terjadi, jangan lakukan apa pun - Jika
f
tidak "di bawah" tindakan lain, cetakf
- Jika
f
berada "di bawah" sebuah garisg
, cetak dif + " under " + g
mana+
rangkaian.
Memasukkan
String multiline nonempty, atau daftar string, dll., Yang terdiri dari spasi dan huruf kecil (Anda bisa menggunakan huruf besar). Tepat satu baris akan dimulai dengan "un"; dan itu akan menjadi kebalikan dari beberapa baris lainnya. Tidak ada baris yang kosong.
Keluaran
Keluaran dalam format yang sama dengan yang Anda masukkan, atau sebagaimana diizinkan oleh I / O Standar.
Kasus uji:
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]