Burlesque, 40 bayt
ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh
Açıklama:
Burlesque, gelişmiş yığın ve kod manipülasyon yerleşiklerine sahiptir. Aslında, programın kaynak koduna erişemezsiniz, ancak gelecekte yürütülecek kalan koda erişebilirsiniz. Bu, #Q
onu izleyen tüm kodları döndürecek, bu yüzden #Q
ne yaptığımızla o koda her şeyi eklemeliyiz ri#Q
.
blsq ) #Q1 2++
12 -- this is the result of 1 2++
{1 2 ++} -- this is the result of #Q
++1 2
yığın tabanlı olduğundan teknik olarak yasadışıdır. Ancak şu şekilde çalışmasını sağlamak için kodu değiştirebiliriz 1 2++
:
blsq ) #Q<-#q++1 2
12
Bu yapılarda çalışmak inanılmaz derecede zordur ve hiç kimse bunları quine ile ilgili şeyler dışında üretken bir şey için kullanmadı. Eğer tersine çevirirseniz ++1 2
almak 2 1++
üretecektir hangi 21
değil 12
. Yukarıdaki kodun üretilmesinin 12
nedeni , sonunda, sadece sonuçtan daha fazlasını yürütmekle sonuçlandığımızı #Q
da içermesidir : p. Biz yürütme sona üreten .<-
2 1++
2 1++#q<-
12
Aslında kodumuzdaki şeyleri değiştirebiliriz, örneğin bu kod ?+
kendi içindeki tüm olayların yerini alır.?*
blsq ) #Q(?+)(?*)r~5.-#q5 5?+
25
Kullanımı:
$ 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