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`
Hãy thử trực tuyến!
Sự thật thú vị: Điều này đã dài 272 byte trước khi giải thích được bắt đầu, bây giờ nó đã vượt qua Java.
Đầu ra True
cho các chuỗi cân bằng hoàn hảo, và False
nếu không
Tôi rất hài lòng, điều này đánh bại phiên bản palindromize nhàm chán thêm 2 byte, để ngăn kết quả được in hai lần. Tôi cũng đã nhắm đến việc có càng ít mã chết càng tốt, tuy nhiên vẫn còn một số phần nhận xét và mã thoát với mã lỗi là 1 , sau khi in giá trị chính xác.
NB : Một lỗi với các BF
lệnh đã được sửa trong khi câu trả lời này đang được phát triển.
Làm thế nào nó hoạt động
ffgffffgSff(S)S
Sabbbaabacc[[a],[bbb],[aa],[b],[a],[cc]]gvà thay thế danh sách con bằng kết quả của hàm.
g2x[a][bb][ccc]
[a]⇒[a,1]
[bb]⇒[b,b,0]
[ccc]⇒[c,c,c,1]
xx>2x−2x*
g(s)sBF
^
D,ff,@^^,
grr;;
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)
dài hơn 4 byte.
x=5x=15
x+10 ; Explicit argument
+10 ; Implicit argument, as x is active
x`
ffgxxxx:?
xxaaaa:1
1xxbb
`bb
Bxx
bbxxaa:=1bb:=¬¬xx
Sau đó, chúng tôi nhập vòng lặp while của chúng tôi:
Waa*bb,`yy,$ff>xx,`aa,xx|yy,`bb,Byy,xx:yy
Một vòng lặp while là một cấu trúc trong Add ++: nó hoạt động trực tiếp trên mã, thay vì các biến. Các constructor lấy một loạt các câu lệnh mã, tách biệt với ,
chúng mà chúng hoạt động. Các câu lệnh while và if cũng lấy một điều kiện trực tiếp trước câu lệnh đầu tiên ,
bao gồm một câu lệnh hợp lệ duy nhất, chẳng hạn như lệnh infix với các biến. Một điều cần lưu ý: biến hoạt động không thể được bỏ qua khỏi điều kiện.
aa*bb
aabbyyff(x)
`yy,$ff>xx
aa
- 1) Giá trị mới không bằng giá trị cũ (vòng lặp trong khi duy nhất)
- 2) Giá trị mới không phải là chuỗi rỗng
Một trong những nhược điểm lớn nhất của Add ++ là thiếu các câu lệnh ghép, đòi hỏi phải có biến vòng lặp thứ hai. Chúng tôi chỉ định hai biến của chúng tôi:
aa:=xx≠yy
bb:=¬¬(yy)
Với mã
`aa,xx|yy,`bb,Byy
|
B
xxyyxx:yy
ffaabb
aax=yaayybbaa
Sau đó chúng tôi đạt được tuyên bố cuối cùng của chúng tôi:
O
bb
- aa=1bb=FalseFalse
- aa=Truebb=FalseFalse
- aa=Falsebb=TrueTrue
bbbbTrueFalse