D,g,@~~,L2_|*;;*|_2L,@,g,D
D,ff,@^^,BG€gBF;;FBg€GB,@D1:?:
xx:?
aa:1
`bb
Bxx;;B
Waa*bb,`yy,$ff>xx,`aa,xx|yy,`bb,Byy,xx:yy
O;;O:,B,`,|,`,>$,`,*W`
Çevrimiçi deneyin!
Eğlenceli gerçek: Bu açıklama başlamadan çok önce 272 bayttır, şimdi Java'yı yener.
TrueMükemmel dengelenmiş dizgiler için çıktılar , Falseaksi takdirde
Benim büyük memnuniyet için, bu sıkıcı yener palindromize versiyonunu tarafından 2 kez basılmış olan sonuç önlemek için, bayt. Ayrıca, mümkün olduğunca az ölü kodun olmasını da hedefledim, yine de bazı yorumlanmış bölümler var ve kod doğru değeri yazdırdıktan sonra 1 hata koduyla çıkıyor .
Not : BFKomutlarla ilgili bir hata düzeltildi Bu cevap geliştirilirken .
Nasıl çalışır
ffgffffgSff(S)S
Sabbbaabacc[[a],[bbb],[aa],[b],[a],[cc]]g, ve işlevlerin sonucu alt listeleri değiştirin.
g2x[a][bb][ccc]
[a]⇒[a,1]
[bb]⇒[b,b,0]
[ccc]⇒[c,c,c,1]
xx>2x−2x* ve fonksiyon doğal yığının üst eleman verir: tekrar dizisi.
g(s)sBF^D,ff,@^^,grr;; bir yorum yorumdur ve bu nedenle dikkate alınmaz.
ffgff
- xxff
- yyff
- aa
- bbyy
gxyabg
€abc{...}g{...}ggffg
D,gg,@~~,L2_|*;;*|_2L,@D (NB: -2 bytes)
D,ff,@^^,BG€{gg}BF;;FB}gg{€GB,@D?: (NB: +6 bytes)
4 bayt daha uzun.
x=5x=15
x+10 ; Explicit argument
+10 ; Implicit argument, as x is active
x`
ffgxxxx:?xxaaaa:11xxbb
`bb
Bxx
bbxxaa:=1bb:=¬¬xx
Sonra biz while döngüsüne giriyoruz:
Waa*bb,`yy,$ff>xx,`aa,xx|yy,`bb,Byy,xx:yy
While döngüsü Add ++ ' da bir yapıdır : değişkenler yerine doğrudan kod üzerinde çalışır. Yapılar, ,üzerinde çalıştıkları bir dizi kod ifadesi alırlar. While ve if ifadeleri ,, değişkenlerden önce bir infix komutu gibi tek bir geçerli ifadeden oluşan ilkinden önce doğrudan bir koşul alır . Unutulmaması gereken bir şey: aktif değişken durumdan çıkarılamaz.
aa*bbaabbyyff(x)
`yy,$ff>xx
aa
- 1) Yeni değer eski değere eşit değil (benzersiz iken döngü)
- 2) Yeni değer boş dize değil
Add ++ 'nın en büyük dezavantajlarından biri, ikinci bir döngü değişkenine sahip olmayı gerektiren bileşik ifadelerin eksikliğidir. İki değişkenimizi atadık:
aa:=xx≠yy
bb:=¬¬(yy)
Kod ile
`aa,xx|yy,`bb,Byy
|B xxyyxx:yy
ffaabb
aax=yaayybbaa
Daha sonra son ifademize ulaşıyoruz:
O
bb
- aa=1bb=FalseFalse
- aa=Truebb=FalseFalse
- aa=Falsebb=TrueTrue
bbbbTrueFalse