Burlesque, 40 byte
ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh
Penjelasan:
Burlesque memiliki built-in stack dan manipulasi kode tingkat lanjut. Bahkan, Anda tidak dapat mengakses kode sumber program tetapi Anda dapat mengakses kode yang tersisa yang akan dieksekusi di masa depan. Ini berarti #Qakan mengembalikan semua kode yang mengikutinya, itulah sebabnya kami harus menambahkan semuanya #Qke kode tersebut yang kami lakukan ri#Q.
blsq ) #Q1 2++
12 -- this is the result of 1 2++
{1 2 ++} -- this is the result of #Q
++1 2adalah kode yang secara teknis ilegal karena itu berdasarkan tumpukan. Tetapi kita dapat memanipulasi kode untuk membuatnya dieksekusi sebagai 1 2++:
blsq ) #Q<-#q++1 2
12
Bekerja dengan built-in ini sangat sulit dan belum ada yang menggunakannya untuk hal-hal yang produktif kecuali untuk hal-hal terkait quine. Jika Anda membalikkan ++1 2Anda mendapatkan 2 1++yang akan menghasilkan 21dan tidak 12. Alasan kode di atas menghasilkan 12adalah karena #Qjuga termasuk <-jadi pada akhirnya kita akhirnya mengeksekusi lebih dari sekedar 2 1++: p. Kami akhirnya mengeksekusi 2 1++#q<-yang menghasilkan 12.
Kita sebenarnya dapat mengganti hal-hal dalam kode kita misalnya kode ini menggantikan semua kejadian ?+dengan sendirinya?*
blsq ) #Q(?+)(?*)r~5.-#q5 5?+
25
Pemakaian:
$ echo "1" | blsq --stdin 'ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh'
hs fi sp "-<" j +. /\ "Q#ir" -~ HS 2Q#ir
$ echo "0" | blsq --stdin 'ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh'
ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh