“Uygun palindrome” denetleyicisi


39

Daha önce hiç palindromik kod yazmaya çalıştıysanız, ne kadar parantez içine girme eğiliminde olduğunu bilirsiniz. ()()Olması iken gerektiği gibi bu tür görünüyor olsa bile, bir palindrom değildir ())(ve ()(hem palindromic ve seyir ikisi de çok dilsizdir. Etrafta tam tersi olsaydı uygun olmaz mıydı?

Bir dize, tersi tüm parantezleri ( ), parantezleri ( ) ve parantezleri ( ) ters çevrildiğinde elde edilen dizeye eşitse uygun bir şekilde palindromiktir . Başka hiçbir karakter özel değildir ve saygısız olması gerekir. ( bazen eşleştirilir ancak çoğu zaman dışarıda bırakılmazlar.)()[]{}<>

Göreviniz , kendi dilinizde, bir program (STDIN üzerinde giriş alarak) veya bir argüman uygun palindromik ve farklı, tutarlı bir yanlış olduğunda, (a) tutarlı bir gerçek değer veren bir işlev (tek bir dize argümanı alarak) yazmaktır. aksi takdirde değeri ve (b) kendisi uygun bir şekilde palindromiktir.

Örneğin, aşağıdaki girişler rahatlıkla palindromiktir:

racecar
(a)(bb)(a)
void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov

Ve aşağıdakiler değil:

non-palindrome
A nut for a jar of tuna?
(old [style] parens) )snerap ]elyts[ dlo(
ingirumimusnocte)etconsumimurigni

Tercüman / derleyici bayrakları hariç herhangi bir dış duruma (belirli bir dosya adı, dizin yapısı, diğer kullanıcı girişi, web erişimi, vb.) Güvenemezsiniz.

Ayrıca, dilinizin yorum yapma olanaklarından yararlanarak yorum yaptığınız veya kullanılmayan bir kod parçasını yaptığınız "yorum numarası" nı kullanamazsınız. Örneğin, aşağıdakilerin hepsine izin verilmiyor, çünkü güvenli bir şekilde çıkarılabilecek veya tahrip edilebilecek işlevsel olmayan parçalar içerirler (rahatlıkla palindromikliği kaybetmek pahasına).

{some code} // {edoc emos}
{some code} NB.BN {edoc emos}
"n\" ;{edoc emos} ;"; {some code}; "\n"

Açıkçası, bu böyle bir durumun tamamını kapsamayabilir, ancak buradaki zorluğun özü palindrominess sağlamak için düzeltilmiş parenler ve parantezleri kullanmak yerine yorum ve düzeltilmemiş ** kod kullanmak değildir. Sana bakıyorum LISP, Brainfuck.

Bu bir , en kısa kod kazanır, ancak tüm kod uzunlukları kabul edilir.

* Tutarlı doğru ve yanlış değerlerinden göre, sen gibi değerler, bir çift birini döndürebilir anlamına 1için doğru ve 0yanlışın veya Falsegerçek ve "no"yalancı kadar uzun bu değerler birbirinden farklıdır ve yok gibi Programın çalıştırmasından çalıştırmaya değiştir. Size karakter kazandıran şeyleri kullanın.

** Beklenmedik şekilde karıştırılmamalıdır : geçerli olan ve garip şeyler yapabilen ancak hiçbir zaman çağrılmayan kod iyidir.


Peki if(false){some code}ya kullanılmayan değişkenler gibi şeyler ? İzin var mı?
ace_HongKongIndependence

@ace Diliniz bir şekilde tür anlaşması veya sözdizimsel geçerliliği için beklenmeyen kodu ayrıştırır veya denetlerse, sorun değil. Diliniz o bloğun içini kontrol etmediği için bir yorumla aynı ise, sözdizimi hatası atarsa, sorun değil. Bence geçerli bir kullanım bulabilirseniz (eslaf)fi, kullanabilirsiniz if(false).
algoritmshark

58
Neden ()()bir palindrom olmadığını anlamak çok uzun sürdü
Reinstate Monica,

Kodun çok satırlı girişle çalışması gerekiyor mu?
Ventero

@Ventero Yeni satırlar ve satır başları karakterdir ve çevrilecek çiftleri yoktur, bu yüzden normal karakter saydıklarını söyleyebilirim.
algoritmshark

Yanıtlar:


13

J (60)

(|.-:'())([]][{}}{'&charsub) :: (busrahc&'}{{}][[])(()':-.|)

Bu, tartışmayı alan bir fonksiyondur:

   (|.-:'())([]][{}}{'&charsub) :: (busrahc&'}{{}][[])(()':-.|) 'ingirumimusnocte)etconsumimurigni'
0
   (|.-:'())([]][{}}{'&charsub) :: (busrahc&'}{{}][[])(()':-.|) '(a)(bb)(a)'
1

Açıklama:

  • f :: gişlevi fgirişin üzerinde çalıştırır ve hatasız geri dönerse sonucu döndürür. Eğer fbaşarısız, bu çalıştırır gyerine.

  • fBurada (|.-:'())([]][{}}{'&charsub)asıl çalışır, hangi:

    • |.: ters
    • -:: eşittir
    • '())([]][{}}{'&charsub: her braketi karşılıklı braket ile değiştirmek
  • gFonksiyonudur (busrahc&'}{{}][[])(()':-.|), saçma ama sözdizimsel olarak geçerli olan. busrahctanımlanmamış, ancak farketmez çünkü yalnızca çalıştırıldığında çözülür (ve çalıştırılmaz).

f :: gİçine çevirerek bir karakter kaydedebilirsiniz g@-@f. gçengel ile eşdeğerdir (-.|), :böylece çıkışlar -1 olur ve sırasıyla uygun olmayan palindromik için boş liste olur.
algorithmshark

34

GolfScript, 107 91

.4:ab-1:ba=;1
%ba%{...fi@@=
c43.=;)('"([{
}])"'~?~'"([{
}])"')(;=.34c
=@@if...}%ab%
1;=ab:1-ba:4.

Newlines sanatsal. fi, c43ve cnoops, ancak kodun tamamı yürütülür.

Aksi takdirde -3-1-1, uygun palindromlar için yazdırır -4-1-1. Çevrimiçi deneyin!

Alternatif sürüm, 155 bayt

64 byte pahasına, bu iyileştirilebilir:

0!*1{!}\;:);0:f;0:i;-1:ab;9:ba;
...=;1%ab%{....i@f@@fi@@=@.=@\)
+""'"([{}])"'~+?+~'"([{}])"'""+
(\@=.@=@@if@@f@i....}%ba%1;=...
;ab:9;ba:1-;i:0;f:0;(:;\{!}1*!0

Daha önce olduğu gibi, kodun tamamı çalıştırılır ve her bir bayt çıkışı etkiler.

Aksi takdirde 010, uygun palindromlar için yazdırır -100. Çevrimiçi deneyin!

Testler ve örnekler

$ base64 > palindrome.gs -d <<< LjQ6YWItMTpiYT07MSViYSV7Li4uZmlAQD1jNDMuPTspKCciKFt7fV0pIid+P34nIihbe31dKSInKSg7PS4zNGM9QEBpZi4uLn0lYWIlMTs9YWI6MS1iYTo0Lg==
$ wc -c palindrome.gs
91 palindrome.gs
$ rev palindrome.gs | tr '([{}])' ')]}{[(' | diff - palindrome.gs
$ echo -n 'r(a[c{"e"}c]a)r' | golfscript palindrome.gs
-3-1-1
$ echo -n 'totallynotapalindrome' | golfscript palindrome.gs
-4-1-1
$
$ base64 > pal.gs -d <<< MCEqMXshfVw7Oik7MDpmOzA6aTstMTphYjs5OmJhOy4uLj07MSVhYiV7Li4uLmlAZkBAZmlAQD1ALj1AXCkrIiInIihbe31dKSInfis/K34nIihbe31dKSInIiIrKFxAPS5APUBAaWZAQGZAaS4uLi59JWJhJTE7PS4uLjthYjo5O2JhOjEtO2k6MDtmOjA7KDo7XHshfTEqITA=
$ wc -c pal.gs
155 pal.gs
$ rev pal.gs | tr '([{}])' ')]}{[(' | diff - pal.gs
$ echo -n 'r(a[c{"e"}c]a)r' | golfscript pal.gs
010
$ echo -n 'totallynotapalindrome' | golfscript pal.gs
-100
$ for i in {1..154}; do head -c $i pal.gs > tmp.gs; tail -c +$[i+2] pal.gs >> tmp.gs
> [ "$(echo -n 'r(a[c{"e"}c]a)r' | golfscript tmp.gs 2> /dev/null)" = "010" ] && echo $i
> done; rm tmp.gs
1
for i in {1..154}; do head -c $i pal.gs > tmp.gs; tail -c +$[i+2] pal.gs >> tmp.gs
>  [ "$(echo -n '42' | golfscript tmp.gs 2> /dev/null)" = "-100" ] && echo $i
> done | grep '^1$'; rm tmp.gs

Nasıl çalışır

.             # Duplicate the input string.
4:ab-1:ba     # Save 4 in “ab” and -1 in “ba”.
=;            # Compare 4 to -1 and discard the result.
1%            # Save every element from the input string in a new string.
ab%           # Reverse the input string.
{             # For each character in the input string:
  ...         # Duplicate the character thrice.
  fi          # Variable “fi” is undefined; this does nothing.
  @@=         # Verify that the character is equal to itself; push 1.
  c43         # Variable “c43” is undefined; this does nothing.
  .=;         # Verify that 1 is equal to itself and discard the result.
  )(          # Increment and decrement the character.
  '"([{}])"'~ # Push that string and evaluate it. Result: '([{}])'
  ?           # Retrieve the character's position in '([{}])'. -1 means not found.
  ~           # Negate the position.. Examples: -1 -> 0    0 -> -1    2 -> -3
  '"([{}])"') # Push that string and pop its last element. Result: '"([{}])' 34
  (;          # Decrement 34 (the ASCII code of a double quote) and discard.
  =           # Retrieve the corresponding character.
  .34         # Duplicate the character and push 34.
  c           # Variable “c” is undefined; this does nothing.
  =           # If the character is a double quote, the index was -1.
  @@if        # In that case, replace the double quote with the original character.
  ...         # Duplicate the new character thrice.
}%            #
ab%           # Save every fourth element in a new string to discard dummy values.
1;            # Push 1 and discard.
=             # Push 1 if the modified string matches the original, 0 otherwise.
ab:1-         # Save 4 in “1” and subtract.
ba:4.         # Save -1 in “4” and duplicate.

0!*           # Pop and push the input string.
1{!}\;:);     # Make “)” an alias for “!”.
0:f;0:i;      # Variables.
-1:ab;9:ba;   # Moar variables.
...=;         # Duplicate the input string.
1%ab%         # Reverse the copy.
{             # For each character in the input string:
  ....        # Duplicate the character four times.
  i@          # Push 0 and rotate a string copy on top of it.
  f@@fi@@     # Push 0 and rotate 0 on top of it.
  =@          # Push 1 and rotate a string copy on top of it.
  .=@         # Push 1 and rotate 1 on top of it.
  \)+         # Negate a 1 and add. Result: 1
  ""          # Push that string.
  '"([{}])"'  # Push that string.
   ~+         # Evaluate the second string and concatenate. Result: '([{}])'
   ?          # Retrieve the characters position in '([{}])'. -1 means not found.
   +~         # Add 1 to the position and negate. Ex.: -1 -> -1 | 0 -> -2 | 1 -> -3
  '"([{}])"'  # Push that string.
  ""          # Push that string.
  +           # Concatenate. Result: '"([{}])"' 
  (\          # Pop the first double quote and swap it with the rest of the string.
  @=.         # Retrieve the corresponding character and duplicate it.
  @=          # If the character is a double quote, the index was -1.
  @@if        # In that case, replace the double quote with the original character.
  @@          # Rotate the modified character to the bottom.
  f@i....     # Push dummy values.
  }%          #
  ba%         # Save every ninth element in a new string to discard dummy values.
  1;          # Push 1 and discard.
  =           # Push 1 if the modified string matches the original, 0 otherwise.
  ...;        # Duplicate thrice and discard the last copy.
  ab:9;ba:1-; # Variables.
  i:0;f:0;    # Moar variables.
  (:;\        # Negate, override “;” and swap.
  {!}1*!0     # Negate twice and push 0.

13

Ruby, 110

(z=gets;r=z.tr *["([{}])",")]}{[("];p *z==r.reverse;1)||(1;esrever.r==z* p;[")]}{[(","([{}])"]* rt.z=r;steg=z)

Yazdırır truegiriş elverişli palindrom olup olmadığını ve falseeğer değilse. Bu çözümün girişin yeni bir satırla sonlandırılmadığını varsaydığını unutmayın, bu nedenle şunu test edin echo -n:

echo -n '(a)(bb)(a)' | ruby convpal.rb
true

echo -n '(a)(bb()a(' | ruby convpal.rb
false

# note that for this to work, the file must not contain a newline
# to remove a trailing newline, pipe it through tr -d $'\n'
cat convpal.rb | ruby convpal.rb
true

Bu, biraz basit liman cevabım için palindromic Palindrome Checker (ve gerçekten golfed şimdiye kadar). Kullanılan ana numara, ilk parantez içindeki ifadenin daima geri dönmesidir 1, bu nedenle, boolean ifadesinin ikinci yarısı hiçbir zaman değerlendirilmez (ancak ayrıştırılır).

Bu uyarlama tek zorluk çağrısını nasıl ekleneceğini bulmaktan z.tronun "uygun ters" da sözdizimsel olarak geçerli olacak şekilde - ama sadece ben zaten koyar kullanılan aynı numarayı kullanabilirsiniz: *ilk yarıda olduğu gibi çözümlenir uyarıcı operatör (dizi parametresini işlev parametreleri olarak kullanın) ve ikinci yarıdaki dizi çarpma (veya tekrarlama) operatörünü kullanın.

Ruby, 157 297, tüm kodlar yürütüldü

w=tsoh=gets p
o=rt=esrever=Gem
q=tsoh.tr *["([{}])",")]}{[("]
q==esrever.host=w=tsoh.reverse==q
[")]}{[(","([{}])"]* rt.host=q
meG=reverse=tr=o
p steg=host=w

Bu (biraz daha uzun) sürüm tüm kodu çalıştırır ve iki satır dışındaki tümü son satırda yazdırılan çıktıyı etkiler - ancak tüm satırlar ayrıştırılır ve hatasız çalıştırılır. Bu sürüm takip eden her yeni satırı girişin bir parçası olarak yorumlar, bu yüzden echo -ntest etmek için ya da girişinizi yeni bir satırla hazırlamak için kullanın. trueGirdi uygun bir palindrom ise yazdırır ve falseaksi halde.

açıklama

# Read the input by calling gets(nil), which is achieved by passing the return
# value of a call to Kernel#p (which returns nil if no argument is supplied) to
# gets.
w=tsoh=gets p
# Assign the global Gem module to three variables.
# The variable names are the reversed names of methods we have to call later.
# This doesn't necessarily have to be the Gem module, any global module/variable
# (or class that allows object creation through a call to the module itself,
# e.g. Hash or GC) with a writable property would do, but Gem#host was
# the shortest one I could find. This is necessary because Ruby doesn't
# allow setting previously undefined properties through the dot syntax.
o=rt=esrever=Gem
# Replace the parentheses with the corresponding flipped one.
# sserts is the reverse of the property name we're going to use later.
q=tsoh.tr *["([{}])",")]}{[("]
# Do the convinient palindrome check and assign its result to a few variables
# and Gem's host property.
q==esrever.host=w=tsoh.reverse==q
# Here, the * is parsed as array join operator.
[")]}{[(","([{}])"]* rt.host=q
# Nothing special here.
meG=reverse=tr=o
# Print the result of the palindrome check, which was stored in w.
p steg=host=w

9

GolfScript, 61 karakter

Tamam, işte GolfScript'te temel bir çözüm. Daha da geliştirilebileceğinden eminim:

{.-1%{"([{}])".2$?~@[.]@+=}%=}~{=%{=+@[.]@~?$2."([{}])"}%1-.}

GolfScript'te olduğu gibi, bu program girişini stdin'den okuyor. Çıktıları:

1{=%{=+@[.]@~?$2."([{}])"}%1-.}

girdi, yukarıdaki zorlukta tanımlandığı gibi uygun bir palindrom ise ve:

0{=%{=+@[.]@~?$2."([{}])"}%1-.}

ya değilse.

Açıklama: Bu program, beklenmeyen kodun ayrıştırıldığı sürece tamam olduğu kararına dayanır . { }Birbirlerinin ayna görüntüleri olan küme parantezleri ( ) ile sınırlandırılmış iki kod bloğundan oluşur .

Birinci kod bloğu tarafından yürütüldüğünde ~, giriş çıkış olarak verilmesi, uygun bir palindrom ise aşağıdaki ve kontroller 1bu ise ve 0eğer değilse. İkinci kod bloğu olup değildir yürütülür ve bu yüzden sadece program sona erene kadar yığın üzerinde kalır ve yığın üzerinde her otomatik dizgelenmiş ve GolfScript yorumlayıcı tarafından basılmış olur.

GolfScript yorumlayıcısının , ayrıştırma sırasında çok az sözdizimi kontrolü yaptığı (ya da bu konuda hiç olmadığı); Bir GolfScript kod bloğu değişmezi, çalıştırıldığında çökmesine rağmen hemen hemen her şeyi içerebilir. Yine de, sonlandırılmamış dize değişmezleri gibi birkaç sözdizimi hatası, beklenmeyen kodda bile bir hataya neden oluyor, bu nedenle bu çözümün (zar zor) kuralların içine girdiğine inanıyorum.

Ps. Yürütülen koda bakıldığında @[.]@, dizge değişmezi "([{}])"ve hatta döngü gibi bir kaç uygun palindromik öğe içerir %{ ... }%. Bu, tam palindromik programın yürütüleceği ve işlevsel olacağı "kendinden palindromik" bir GolfScript çözümünün gerçekten mümkün olabileceği konusunda titiz bir öneri sunar. Henüz kendim üretemeyi başaramadığım için, bir tanesini elde etmeyi başaran ilk kişiye +100 rep lütuf teklif ediyorum !


3
bekle, ur kodu bir palindromun kendisi mi? : O
Fabricio

Bu çözümü daha çok "n\";X;";X;"\n"yorum yapma gibi göz önünde bulundurmaya meyilliyim, ancak size şüphenin faydasını vereceğim. Bununla birlikte, aslında en azından blokların yürütülmemesinin biraz daha önemsiz olduğu durumlarda “kendinden doğal palindromik” çözümler arıyordum.
algorithmshark

Cevabımın bir noop'u (tanımsız değişken) ve hiçbir şey yapamayan birkaç kısmı (örn 1;. ) Vardır . Bu hala tamamen işlevsel olarak sayılıyor mu?
Dennis,

@Dennis: Evet, sanırım öyle. Tebrikler, kesinlikle yeterince etkileyici. Bu soru henüz yeni ödül kazanamayacağım kadar yeni görünüyor, ancak birkaç gün içinde elinizde olacak.
Ilmari Karonen

1
çıkış biçimi leeway abuuuse :-)
John Dvorak

4

JavaScript (ES6), 245 bayt

Tarayıcıda çalıştırılabilecek bir JS yanıtı istedim, işte burada.

eurt=>eurt==(("",eurt))["split"||"nioj"]("")["map"||"esrever"](x=>({'{':'}','}':'{','[':']',']':'[','(':')',')':'('})[x]||x||[x]({')':'(','(':')',']':'[','[':']','}':'{','{':'}'})>=x)["reverse"||"pam"]("")["join"||"tilps"]((true,""))==true>=true

Asla çalıştırılmayan tüm kodları kaldırarak şunu alıyoruz:

eurt=>eurt==(("",eurt))["split"||"nioj"]("")["map"||"esrever"](x=>({'{':'}','}':'{','[':']',']':'[','(':')',')':'('})[x]||x||[x]({')':'(','(':')',']':'[','[':']','}':'{','{':'}'})>=x)["reverse"||"pam"]("")["join"||"tilps"]((true,""))==true>=true
eurt=>eurt==(("",eurt))["split"        ]("")["map"           ](x=>({'{':'}','}':'{','[':']',']':'[','(':')',')':'('})[x]||x                                                           )["reverse"       ]("")["join"         ]((true,""))==true>=true

Bu basitleştirilebilir:

eurt=>eurt==eurt.split("").map(x=>({'{':'}','}':'{','[':']',']':'[','(':')',')':'('})[x]||x).reverse("").join("")

Gerçek / eurt yerine n1 / 1n, || yerine bazı yerlerde virgül kullanarak ve braket anahtarlayıcıyı kullanarak bazı 60 baytları kaydedebilirsiniz: n1=>n1==(('',n1))['nioj','split']``['esrever','map'](c=>`()[]{}`[`()[]{}`['indexOf'](c)^1]||c||[1^(c)['fOxedni']`{}[]()`]`{}[]()`>=c)['pam','reverse']``['tilps','join']((1n,''))==1n>=1n(185 bayt)
Yair Rand

3

Javascript (ES6) 288

Çalıştırır Spidermonkey'i komut satırı kabuğu . STDIN'den tek bir satır okur ve çıktı verir trueya falseda girişin uygun bir palindrom olup olmadığına bağlı olarak.

((print)((eval)('r=readline()')==([0]['map']['call'](r,x=>({'{':'}','}':'{','[':']',']':'[','(':')',')':'('})[x]||x)['reverse']()['join']('')))&&((('')['nioj']()['esrever'](x||[x]({')':'(','(':')',']':'[','[':']','}':'{','{':'}'})>=x,r)['llac']['pam'][0])==('()enildaer=r')(lave))(tnirp))

Bu kod sözdizimsel olarak geçerlidir, ancak işlev bir falsey değeri döndürdüğü için sonraki &&her şey gerçekleştirilmez print.

Bu kodu, readlineve printişlevlerini taklit etmek için önce bu şeridi çalıştırarak Firefox konsolunda çalıştırabilirsiniz . İçerideki girişi readlinegerektiği gibi düzenleyin :

readline = function(){ 
    return "void main(int argc, *char[] argv) {} (vgra []rahc* ,cgra tni)niam diov"; 
}, print = console.log.bind(console);

Ve işte çıktının hızlı bir örneği:

komut satırı örneği


Yararlanan &&gerçekten zekiydi, ben (ama biraz cheaty görünüyor) size övmek
MayorMonty

2

05AB1E, 35 bayt

"{[()]}"DRr‡`rJ¹Q,Q¹Jr`‡rRD"{[()]}"

Çevrimiçi deneyin!

Açıklama:

                     # Implicit input
 "{[()]}"            # Push "{[()]}" onto the stack
         DR          # Pushes a reversed copy onto the stack
           r         # Reverse the order of the stack
            ‡        # Transliterate
             `       # Flatten array on stack
              r      # Reverse order of stack
               J     # Join stack
                ¹Q   # Check equality with first input
                  ,  # Print
                     # Everything after is still syntactically correct, but just does not print anything.

Cevap geçersiz olduğu için bunun yardımcı olacağını sanmıyorum ama "()[]{}"senin yerine yapabilirsinžu„<>-
saat

@daHugLenny It şimdi geçerli
Oliver Ni

Programın geri kalanı qen azından sözdizimsel geçerlilik için ayrıştırılmış mı? Olmazsa, kodun ikinci yarısını yorumlamayı bu kadar önemli düşünürdüm.
algoritmshark

@algorithmshark Sabit.
Oliver Ni,

1

CJam, 38 bayt

Q~"=re%W_@%W_q"`{[()]}`"q_W%@_W%er="~Q

"=re%W_@%W_q"1Girdi uygun palindromik ise ve "=re%W_@%W_q"0başka ise yazdırır .

CJam tercümanında çevrimiçi olarak deneyin .

Nasıl çalışır

Q~                                     e# Evaluate an empty string.
  "=re%W_@%W_q"                        e# Push that string.
               `                       e# Inspect. Pushes "\"=re%W_@%W_q\"".
                {[()]}                 e# Push that block.
                      `                e# Inspect. Pushes "{[()]}".
                       "           "~  e# Push and evaluate.
                        q              e# Read from STDIN.
                         _W%           e# Push a reversed copy.
                            @          e# Rotate "{[()]}" on top of the stack.
                             _W%       e# Push a reversed copy.
                                er     e# Perform transliteration.
                                  =    e# Compare to the input string.
                                     Q e# Push an empty string.

Programı yürüttükten sonra, CJam otomatik olarak yığındaki üç öğeyi de yazdırır: kontrol edilen dizge, dizi karşılaştırmasından Boolean ve boş dizge.


0

Perl, 83 + 2 = 85 bayt

İle koş -nl

say$_~~reverse y-"({[]})"-")}][{("-r;exit;tixe;r-")}][{("-"({[]})"-y esrever~~_$yas

Kod, girişin doğruluğunu yazdırdıktan sonra çıkar. Noktalı virgül sonrasındaki her şey yorumlanır (ve komut dosyası o noktaya ulaştığında kilitlenir.exit karşılaşmaz. Ben bırakılırsa exit;tixe;kod dururken, hala çöktü doğru önce sonucu basacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.