Bu meydan okuma ilk ezoterik dilim Backhand !
Backhand doğrusal olmayan bir işaretçi akışı olan tek boyutlu bir dildir. İşaretçi bir seferde üç adım hareket eder, yalnızca her üç talimatı uygular.
Program 1..1..+..O..@
sonlandırmadan önce 1 + 1 ve çıkış 2 ekleyecektir. Ara talimatlar atlanır, dolayısıyla 1<>1()+{}O[]@
tam olarak aynı programdır.
İşaretçi, bandın ucundan çıkmak üzereyken, bunun yerine yönü tersine çevirir ve başka bir şekilde adım atar 1.@1.O+.
, aynı programdır. Son talimatı yalnızca bir kez saydığını unutmayın. Bu, çoğu doğrusal programı1O+1@
Buradaki zorluk, bir dizge alan bir program veya işlev yazmak ve program Backhand gibi yorumlanırsa yürütülecek talimatları çıkarmaktır (gerçek Backhand talimatlarını kullanmanıza gerek yoktur). Yalnızca işaretçi dizenin son karakterine gelene kadar çıktı almalısınız (bu noktada yürütme normalde geriye doğru gider).
Ama bekleyin , hepsi bu değil! Programınızın kendisi bu şekilde yorumlandığında, ortaya çıkan kod aşağıdakilerden birini vermelidir:
(Mostly) works
Turing complete
'Recreational'
(tırnak işaretleri ya olabilir ya'
da"
her ikisi birden olamaz)Perfectly okay
Only a few bugs
Örneğin, kaynak kodunuz ise code 2 backhand
, program ce cankb od2ahd
bu ifadelerden birini çıktılamalıdır.
Test senaryoları:
"1 1 + O @" -> "11+O@"
"1O+1@" -> "11+O@"
"HoreWll dlo!" -> "Hello World!"
"abcdefghijklmnopqrstuvwxyz" -> "adgjmpsvyxurolifcbehknqtwz"
"0123456789" -> "0369" (not "0369630369")
"@" -> "@"
"io" -> "io" (Cat program in Backhand)
"!?O" -> "!?O" (Outputs random bits forever in Backhand)
"---!---!" -> "-!-----!"
Ve elbette Backhand ile yazılmış bir referans programı ( bu biraz buggy olabilir Tamam, sanırım düzelttim).
Kurallar.
- Standart Loopholes yasaktır
- İlk programın girişi yalnızca yazdırılabilir ASCII ve yeni satırlar (bayt
0x20
-0x7E
yanı sıra 0x0A) içerecektir. - İkinci programınızın ilk bayttan mı yoksa UTF-8 karakterlerinden mi dönüştürüleceğini seçebilirsiniz.
- İkinci program:
- Durum önemli değil , bu nedenle çıktılarınız olabilir
pErFectLy OKay
. - Herhangi bir miktarda izleyen / önde gelen boşluk (satırsonu, sekmeler, boşluklar) da uygundur.
- İkinci program birinciyle aynı dilde olmalıdır, ancak aynı formatta olmamalıdır (program / işlev)
- Ekstra ifadeler hakkındaki yorumlardan (çok kısa olmadıkları sürece) öneriler eklemekten memnuniyet duyuyorum
- Durum önemli değil , bu nedenle çıktılarınız olabilir
- Bu kod golf olduğundan , amacınız diliniz için en kısa cevabı almaktır!
- İki hafta içinde en kısa Backhand cevabına 200 ödül vereceğim.
"---!---!"
(veya son karakterin birden fazla göründüğü herhangi bir dize)