CJam , 6 byte (program penuh) / 7 byte (blok kode)
q),^W=
Cobalah online!
Ini adalah program CJam lengkap yang membaca string input dari input standar dan mencetak huruf yang hilang ke output standar. CJam sebenarnya tidak memiliki "metode", yang merupakan tantangan yang diminta, tetapi hal terdekat mungkin akan menjadi blok kode yang dapat dieksekusi, seperti ini:
{),^W=}
Cobalah online!
Blok kode ini, ketika dievaluasi, mengambil input sebagai string (yaitu array karakter) pada stack, dan mengembalikan karakter yang hilang juga pada stack.
Penjelasan: Dalam program lengkap, q
baca string input dan letakkan di tumpukan. )
kemudian memunculkan karakter terakhir dari string input, dan operator jangkauan ,
mengubahnya menjadi array yang berisi semua karakter dengan titik kode di bawahnya (termasuk semua huruf sebelum itu dalam alfabet). Jadi, misalnya, jika inputnya adalah cdfgh
, maka setelah ),
stack akan berisi string cdfg
(yaitu input dengan huruf terakhir dihapus) dan ...abcdefg
, di mana ...
singkatan dari sekelompok karakter dengan kode ASCII di bawah ini a
(yaitu semua karakter di bawah input terakhir dihapus surat).
Operator set perbedaan simetris ^
kemudian menggabungkan string-string ini ke dalam string tunggal yang berisi persis karakter-karakter yang muncul di salah satu string, tetapi tidak di keduanya. Ini mempertahankan urutan di mana karakter muncul dalam string, jadi untuk input contoh cdfg
, hasilnya setelah ),^
akan ...abe
, di mana ...
lagi singkatan dari sekelompok karakter dengan kode ASCII di bawah ini a
. Akhirnya, W=
ekstrak karakter terakhir dari string ini, yang merupakan karakter hilang e
yang ingin kita temukan (dan buang sisanya). Ketika program berakhir, juru bahasa CJam secara implisit mencetak isi tumpukan.
Bonus: GolfScript , 6 byte (program lengkap)
),^-1>
Cobalah online!
Ternyata kode yang hampir sama juga berfungsi di GolfScript. Kami menyimpan satu byte dalam versi program lengkap karena input tersirat dari GolfScript, tetapi kehilangan satu byte karena, tidak seperti CJam W
, GolfScript tidak memiliki variabel huruf tunggal berguna yang diinisialisasi ke -1.
Juga, CJam memiliki tipe integer dan karakter yang terpisah (dan string hanyalah array yang mengandung karakter), sedangkan GolfScript hanya memiliki tipe integer tunggal (dan memiliki tipe string khusus yang berperilaku agak berbeda dari array normal). Hasil dari semua ini adalah, jika kita ingin penerjemah GolfScript mencetak huruf yang hilang dan bukan nomor kode ASCII, kita perlu mengembalikan string karakter tunggal alih-alih hanya karakter itu sendiri. Untungnya, melakukan perubahan di sini hanya perlu mengganti operator pengindeksan =
dengan operator pemotongan array / string >
.
Tentu saja, berkat I / O tersirat dari GolfScript, kode di atas juga dapat digunakan sebagai cuplikan yang membaca string dari tumpukan dan mengembalikan string karakter tunggal yang berisi huruf yang hilang. Atau, lebih tepatnya, potongan apa pun yang menggunakan string tunggal pada stack sebagai argumen, dan mengembalikan hasilnya sebagai string yang dapat dicetak pada stack, juga merupakan program GolfScript lengkap.