Bozulmamış ve Eşsiz Kod Bowlingi


80

Mücadeleniz basittir: yalnızca benzersiz baytlar kullanarak seçtiğiniz bir dilde mümkün olduğunca uzun bir bozulmamış program yazın. (Bu bağlantıdan kopyalanan bozulmamış bir programın tam tanımı bu sorunun altındadır.)

Bu doğru, ip ekli değil. Kodunuz hiçbir şey yapmak zorunda değildir, sadece hatasız çalışır, bozulmamış bir programın gereksinimlerini karşılar (yukarıda bağlanmış) ve kullandığınız kodlamada yinelenen bayt içermez.

Yukarıdaki açıklama ve "bozulmamış program" ın bağlantılı tanımı amacıyla, bir hata, programın tamamen çalışmamasına veya belirli bir süre sonra sıfırdan farklı bir kodla sonlandırılmasına neden olan herhangi bir şey olarak tanımlanır.

Bu , en uzun , en kısa değil, kod kazanır (bayt sayısı ile ölçülür). Teorik olarak mümkün olan maksimum puan 256, muhtemel 256 ayrı bayt olduğundan 256'dır. Beraberlik durumunda, en yüksek puandaki ilk cevap kazanır.


İşte yukarıdaki linkten kopyalanan bozulmamış bir programın tam tanımı:

Bozulmamış bir programı, kendi başına bir hata içermeyen bir program olarak tanımlayalım, ancak N karakterinin bitişik alt dizgisini kaldırarak değiştirirseniz hata verir 1 <= N < program length.

Örneğin, üç karakterli Python 2 programı

`8`

Bozulmamış bir programdır, çünkü uzunluk 1'in alt dizgilerinin kaldırılmasından kaynaklanan tüm programlar hatalara neden olur (aslında sözdizimi hataları, ancak herhangi bir hata türü olacaktır):

8`
``
`8

ve ayrıca uzunluk 2'nin alt dizelerinin çıkarılmasından kaynaklanan tüm programlar hatalara neden olur:

`
`

Örneğin, `8hata yapmayan bir program `8`olsaydı, o zaman bozulmamış olmazdı, çünkü alt zeminin kaldırılmasının tüm sonuçları hata vermeli.


37
İyi bir bowling mücadelesi yaratmayı başardığın için sana şapka aç !
ETHproductions

Bir alt program sonsuza kadar çalışır, ancak hata yapmazsa bu cevabı geçersiz kılıyor mu?
dylnan,

1
@ dylnan "bir hata, sonlu bir süre sonra [...] sonlandır [...] olarak tanımlanır ."
user202729

3
@Baldrickk Hayır, bu meydan okuma için izin verilmeyecek. (Eğer sorudaki örneğe değiniyorsanız, bu bir bozulmamış programın ne olduğunun bir göstergesidir, ancak bu benzersiz baytların ek gereksinimlerini karşılamaz.)
Aidan F. Pierce

1
Uygulamada genellikle hata ile sonuçlanırsa tanımsız davranışı bir hata olarak sayabilir miyiz? JMP <address outside of the program's memory>Meclis gibi bir şey düşünüyorum . Prensip olarak gerçek bir bilgisayarda sonsuz bir şekilde dönebilir veya sıfır olmayan bir hatayla çıkılabilir, ancak genellikle olağanüstü şekilde çökecektir.
Chris

Yanıtlar:


20

Jelly , 253 254 256 bayt

M“¢£¥¦©¬®µ½¿€ÆÇÐÑ×ØŒÞßæçðıȷñ÷øœþ !"#%&'()*+,-./0145689:;<=>?@ABCDEFGHIJKNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~¶°¹²³⁴⁵⁶⁷⁸⁹⁺⁻⁼⁽⁾ƁƇƑƓƘⱮƝƤƬƲȤɓƈɗƒɠɦƙɱɲƥʠɼʂƭʋȥẠḄḌẸḤỊḲḶṂṆỌṚṢṬỤṾẈỴẒȦḂĊḊĖḞĠḢİĿṀṄȮṖṘṠṪẆẊẎŻḅḍẹḥịḳḷṃṇọṛṣṭụṿẉỵẓȧḃċḋėḟġḣŀṁṅȯṗṙṡṫẇẋẏż”L»«’Ɗạ‘}237$¤¡

Çevrimiçi deneyin! veya Doğrulayın!

Golf dillerinin kaplayabildiği ortaya çıkıyor ...

  • +1 bayt çalışarak . Şimdi sadece «»kullanılmıyor
  • İle +2 bayt «». Şimdi en uygun skoru al!

Nasıl?

Jelly'in bunu mümkün kılan en önemli özelliği, karakter dizilerinin açılış ve kapanış karakterlerinin neredeyse tüm diğer dillerdeki gibi olmamasıdır.

Programın yapısı aşağıdaki gibidir:

M <239 character long string> L»«’Ɗạ‘}237$¤¡

MMaksimum elemanlara işaret eden argümanının indekslerini bulur. Tek önemli olan, bu programda tartışmasız olan Jelly 0zincirine Muygulandığında ve Jelly hatalarına uygulandığında 0.

Önlemek için Mhareket eden itibaren 0tam programda, kullandığımız ¡uygulandığı, hızlı Mhemen önceki bağlantının sonucu belirlediği bir kaç kez. Bu durumda bu bağlantı <239 character long string> L»«’Ɗạ‘}237$¤.

Lbu dizginin uzunluğunu alır (239) ve »«’Ɗbunu 238 değerine düşürür. »«Parça hiçbir şey yapmaz, ancak Ɗ(bir monad olarak son üç bağlantı) silinirse bir hata oluşmasını sağlar. Sonra sonucu »«’Ɗve ‘}237$dizeye uygulanan monad arasındaki mutlak farkı alır . artışlarla ve bir monad, ama }bir ikilisinin içine dönüşler bu ve bunun doğru bir tartışma olur uygular, 237, verimli 238. Böylece tam programda verim 0.

¤bir nilad oluşturan dize değişmezine geri döner. Bunun sonucu olduğu 0, bu nedenle Mherhangi bir hatayı önler hiç uygulanmaz.

Muhtemel alt programlar:

  • Dizenin herhangi bir kısmı kaldırılırsa, <string>..¤sıfır olmayacak ve hataya neden olacak şekilde Muygulanacaktır 0.
  • Herhangi bir kısmı L»«’Ɗạ‘}237$kaldırılırsa ya Muygulanacak 0veya dize ile bir sayı arasında bir işlemle sonuçlanacak, a ile sonuçlanacaktır TypeError.
  • Herhangi ¤¡biri kaldırılırsa, Muygulanır 0.
  • Dize karakteri kapanıyorsa ve her ikisi de ’‘kaldırılırsa ve çıkarmazsa, Mbir dizgeye dönüşen her şey böyle Mdevam eder 0.
    • Dize karakterini kapatıyorsanız ve kaldırılırsa ve alınmazsa, arasındaki her şey ve tamsayıların listesine dönüşür.
  • Eğer Mtek başına çıkarılırsa, bir neden var, EOFErrorçünkü ¡önceki niladdan önce bir bağlantı bekliyor.
  • Eğer M“ve çıkarıldıktan sonra herhangi bir karakter sayısı, bir olacakEOFError , çünkü ¤bir nilad için görünüyor ondan önceki ancak birini bulamaz. 238sayılmaz çünkü bir monadın parçası.

Bu hemen hemen her şeyi kapsar.

Daha önce hiç kullanmamıştım, «»‘çünkü ikinci ikisi dizgiye dahil edilemiyordu çünkü karakterleri karakter dizileri dışında bir şeyler oluşturmak için eşleştiriyorlardı . «Bir olamaz “”ya dize ama neden bilmiyorum.


31

Haskell , 39 45 50 52 60 bayt

main=do{(\𤶸	陸 ⵙߜ 新->pure fst)LT
EQ[]3
2$1}

Tanıtıcı maintürü olması gerekiyor IO abazı tip a için. Program yürütüldüğünde hesaplama mainyapılır ve sonucu reddedilir. Bu durumda türü IO ((a,b)->a).

Sonuç, fonksiyonun bir uygulamasıdır (λ a b c d e f → return fst), IO monadına enjekte edilen fst fonksiyonunu döndüren (2 parçanın ilk elemanını veren) altı bağımsız değişkenli bir fonksiyondur. Altı bağımsız değişkendir LT(daha az enum), EQ(eşitlik için enum), boş liste [], 3, 2ve 1.

Boşluklar, boşluk olarak sayılan benzersiz karakterlerle değiştirilir: bir sekme, bölünmeyen bir boşluk, formfeed, dikey bir sekme, OGHAM SPACE MARK, normal boşluk, newline ve satır başı. Bunlardan herhangi biri eksikse, argüman sayısında bir uyuşmazlık olacaktır. Parametre adları üç veya dört bayt UTF-8 karakter olarak seçilir 𤶸陸ⵙ商ߜ新, dikkatlice yinelenen baytlara neden olmayan karakterleri seçer.

Değerli katkılarından dolayı @BMO'ya teşekkür ederiz.

Hex dökümü:

00000000: 6d61 696e 3d64 6f7b 285c f0a4 b6b8 09ef  main=do{(\......
00000010: a793 c2a0 e2b5 990c e595 860b df9c e19a  ................
00000020: 80e6 96b0 2d3e 7075 7265 2066 7374 294c  ....->pure fst)L
00000030: 540a 4551 5b5d 330d 3224 317d            T.EQ[]3.2$1}

Çevrimiçi deneyin!


Hm, '\109999'en azından GHC 8.2.2'de geçerli görünüyor. '\10999a'sözcüksel bir hata üretir.
chepner

@chepner: Ben sadece GHC 8.2.2 ile test ettim ve 𚶯aynı zamanda sözcüksel bir hata ürettim .
ბიმო

2
@chepner: en büyük Char maxBound :: Char, yani '\1114111'. Not: numaralar varsayılan olarak ondalık, böylece onaltılık istiyorsanız, bir koymak zorunda xsonra \ örneğin '\x10999a'.
nimi

@nimi Aaave sanırım Unicode kaçışlarını ne sıklıkla kullandığımı tespit ettik :) Onaltılık değerler için doğru formu kullanmak, \x10ffffiyi çalışıyor ve \x110000beklendiği gibi aralık dışı bir hata veriyor .
chepner

24

Python 2 ,  20 21 33 39 45  50 bayt

Şimdi çok fazla işbirlikçi bir çaba!

Aidan F. Pierce +2 sayesinde (yerine sorted({0})ile map(long,{0}))

Dylnan +8 sayesinde (kullanımı \ve yeni satır boşluk yerine, hareket için öneriler 0matematiksel ifadesine; değiştirilmesi -1ile -True, onaltılı kullanımı)

Angs sayesinde +11 ( 4*23+~91(>> ~4836+9*1075/2sonra ~197836254+0xbCABdDF- - ~875+0xDEAdFBCbc%1439/2*6)


if\
map(long,{~875+0xDEAdFBCbc%1439/2*6})[-True]:q

Çevrimiçi deneyin! Veya onay paketine bakın.

0xDEAdFBCbconaltılık ve değerlendirir 59775106236.
~bit-bilge tamamlayıcı yani ~875değerlendirir -876.
%modulo operatörü bu yüzden 0xDEAdFBCbc%1439değerlendirir 293.
/tamsayı bölme olduğu için 0xDEAdFBCbc%1439/2değerlendirir 146.
*çarpım yani xDEAdFBCbc%1439/2*6değerlendirir 876.
+ilaveten ~875+xDEAdFBCbc%1439/2*6değerlendirir 0.
... elimden alınmış bir sürüm de yok 0.

{0}a, settek bir eleman içeren, 0.

sortedBir setargüman olarak çağırmak , içinde indekslenebilen bir liste oluşturur [...].

Olmadan sortedkod ({0})sadece doğuracak setve bu aynı şekilde içine endeksli olamaz,if({0})[-True]:q bir gündeme getireceğini TypeError.

Python dizin 0 tabanlıdır ve arkasından negatif endeksleme sağlar ve Trueeşdeğerdir 1dolayısıyla sorted({0})[-True]eleman bulur 0ise, sorted({0})[True]bir yükseltmek IndexErrorgibi, sorted({})[-True]vesorted({0})[] geçersiz sözdizimi.

0Bulunduğunu gövdesi böylece Falsey olduğunu if, qbunun bir gündeme getireceğini vardı ancak, eğer asla çalıştırılmazNameError beri qtanımlanmamıştır.

Boş olmayan bir liste truthy olduğu için aşağıya doğru gidemiyoruz if[-1]:q .

Görmek için onay paketine bakın: benzersiz baytların doğrulanması; tüm hatalar; ve kodun başarısı.


17

C (tcc) , x86_64, 29 31 33 39 40 bayt

main[]={(23*8),-~0xABEDFCfebdc%95674+1};

0 döndürür . Büyük harfle onaltılık rakam önerdiğiniz için @ feersum 'a teşekkür ederiz.

Çevrimiçi deneyin!

Nasıl çalışır

Atama , ana belleğe iki inç ( 184 ve 49664 ) yazar . 32-bit inç ve küçük-endian bayt sırası ile, tam baytlarb8 00 00 00 00 c2 00 00 .

Tcc, tanımlanmış diziyi .data (çoğu derleyicinin yapacağı) olarak bildirmediğinden, ana sayfaya atlamak, işaret ettiği makine kodunu çalıştırır.

  • b8 00 00 00 00( mov eax, imm32), int 0'ı eax register'a kaydeder.

  • c2 00 00( ret imm16) yığından 0 bayt çıkar ve döner. (Eax register'ındaki değer, fonksiyon dönüş değeridir).


15

> <> , 122 bayt

e"~l=?!z6-d0p}xwutsrqonmkjihgfcba`_]\[>ZYXWVUTSRQPONMLKJIHGFEDCB@<:98754321/,+*)('&%$# .	|{Ay

Çevrimiçi deneyin!

Hiç birşey yapmıyor. Benim bozulmamış bir dünyayı programlamanın cevabı aynı formatta .

Öncelikle, kodun uzunluğunun 122 olduğunu ve eğer değilse hata olduğunu kontrol ederiz. ><>programlar ;komutun kullanımı olmadan sona eremez, ancak bu komut programdaysa, programın derhal sona ermesi için önündeki her şeyi kaldırabiliriz. Bununla mücadele etmek piçin ;çalışma zamanı sırasında bir koda yerleştirmek için bu komutu kullanırız . Bunu yapmak için 6'yı çıkarır Ave arkasından yerleştiririz p.

Doğru iki byte değerini bulduğumda muhtemelen 127 üzerindeki diğer değerlerin çoğunu ekleyeceğim. Eksik 5 değerv^; ve iki yeni satır.

7502 alt programın 7417’si geçersiz talimatlardan, 72’nin hafızanın altına düşmesinden ve 13’ünün hafızasının tükenmesinden kaynaklandı.


13

JavaScript, 42 bayt

if([0XacdCADE*Proxy.length]!=362517948)田
  • Çıkarılması i, fveya ifneden olurSyntaxError: missing ; before statement ;
  • Çıkarılması neden olurSyntaxError: expected expression, got end of script ;
  • 1 veya 2 bayttan çıkarmakInvalid or unexpected token ;
  • Boole ifadesini değiştirmek, sözdizimi hatası veya başvuru hatası

00000000: 6966 285b 3058 6163 6443 4144 452a 5072  if([0XacdCADE*Pr
00000010: 6f78 792e 6c65 6e67 7468 5d21 3d33 3632  oxy.length]!=362
00000020: 3531 3739 3438 29e7 94b0                 517948)...


8

Beyin Flak , 2 bayt

<>

Çevrimiçi deneyin!

Alternatif olarak, [], {}ya da (). Her iki braketi de çıkarmak, diğer braketin eşleşmemesine neden olur.

Bunun en uygun çözüm olduğunun kanıtı:

Brain-Flak programı, nilazlardan (kendi başlarına bir çift braket) veya monadlardan (1 veya daha fazla nilad içeren bir çift braket) oluşur. Bir monad bozulmamış bir programda olamaz, çünkü niladlardan birini veya daha fazlasını çıkarabilirsiniz. Benzer şekilde, programda birden fazla niladınız olamaz, çünkü programlardan birini programdan koparmadan çıkarabilirsiniz.

Bu nedenle, bu bozulmamış veya benzersiz programlama için en uygun dil olabilir.


6

Ada, 110 bayt (latin1)

Muhtemelen sektörde kullanılan herhangi bir dilden alacağınız en iyi cevap hangisi?

HexDump:

0000000: 7061 636b 4167 4520 6266 686a 6c6d 6f71  packAgE bfhjlmoq
0000010: 7274 7576 7778 797a e0e1 e2e3 e4e5 e6e7  rtuvwxyz........
0000020: e8e9 eaeb eced eeef f0f1 f2f3 f4f5 f6f8  ................
0000030: f9fa fbfc fdfe 0d69 730b 656e 6409 4246  .......is.end.BF
0000040: 484a 4c4d 4f51 5254 5556 5758 595a c0c1  HJLMOQRTUVWXYZ..
0000050: c2c3 c4c5 c6c7 c8c9 cacb cccd cecf d0d1  ................
0000060: d2d3 d4d5 d6d8 d9da dbdc ddde 3b0a       ............;.

Biten .adsve çalışan herhangi bir dosyaya kaydederek derleyin gcc -c <filename>. Hiçbir şey yapmayan bir çalıştırılabilir dosya üretir. (TIO bir .adbdosyaya kod koyduğundan, TIO bağlantısı sağlayamıyor vegcc varsayılan olarak onlar için eşleşen bir özellik bulmaya çalıştığından )

Temelde büyük / küçük harf latin1 harfleri kötüye kullanan bir adı olan bir paket ilan eder. Boşlukların her biri için farklı bir boşluk karakteri gerektirir, bu yüzden boşluk, CR, LF ve SEKME kullanır.

Vim versiyonunda nasıl görünüyor:

packAgE bfhjlmoqrtuvwxyzàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ^Mis^Kend^IBFHJLMOQRTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ;

Nasıl çalışır

Ada'da spec'ler bile derlenebilir. Spec'ler c'nin başlık dosyaları gibidir, ancak daha tam özelliklidir ve bazı temel kodları derleyebilir. : Geçerli olabilmesi için herhangi şartname biçimi olmalıdır package <NAME> is ... end <NAME>;ile <NAME>eşleşen. Ada hakkındaki güzel şey, tamamen küçük harfe duyarsız olmasıdır. Bu nedenle, adınız büyük ve küçük harf türevleri olduğu sürece, gitmeniz iyi olur!

Zor kısım, derlenebilir bir ünite almaktı. Normalde Ada programlarının, son çalıştırılabilir olacak herhangi bir paketin dışında kalan bir 'ana' prosedürü veya işlevi vardır. Maalesef prosedürler begin, çok fazla es'ye neden olan anahtar kelimeyi gerektirir (yalnızca 2 vaka bilinmektedir), işlevler returnçok fazla sayıda ns anahtar kelimesine ihtiyaç duyar . Bu yüzden sadece bir paket derlemek zorunda kaldım.


4

C, 8 bayt

main(){}

Hiç birşey yapmıyor.

Çevrimiçi deneyin!


1
Belki mücadeleyi anlamıyorum ama pekimain(){short x;}
Jerry Jeremiah

@JerryJeremiah: hayır, main(){short;}sadece a ile derler warning: useless type name in empty declaration. C99 ve C ++ 'nın açık bir geri dönüş türü gerektirdiğini düşünüyorum, bu yüzden int main(veya belki unsigned main) işe yarayabilir, ancak yalnızca bile uyardığı gcc ile değil -std=c11.
Peter Cordes

@JerryJeremiah: return 0;C89 ile mümkün olabilir return 0, sonunda bir örtülü değildir main. Diğer cevaplara göre sıfır olmayan durumdan çıkma başarısızlık olarak kabul edilebilir. Gibi derleyici bayrakları eklemek -Werrorkod bowling de skoru iyi bir şekilde sayılır mı? Çünkü kesinlikle C11 ihlallerini zorlamak çok daha uzun bir programa izin verebilir. Hmm, bir #include<>şey ve sonra kullanın; hem içerme hem de kullanımı kaldıramazsınız ve eğer bir prototip ya da makro def olmadan çökerse kazanırsınız.
Peter Cordes

@PeterCordes Bunun hakkında düşündüm, ama mainve includeikisi de içeriyor i, bu yüzden ikisine de sahip olamazsınız. Benzer şekilde bir işlevi bildirmek ve kullanmak için. Ayrıca hiç kullanarak returnbunu düşünmeye geldim.
Chris

Hata! Benzersiz bayt gereksinimini unuttum; elbette int mainçalışamaz.
Peter Cordes

4

JavaScript, 22 bayt

with(0xF?JSON:[])parse

Çevrimiçi deneyin!

Olası hatalar

Değiştirildiğinde, aşağıdaki hatalardan birini atar 1 :

[some_identifier] is not defined
expected expression, got ')'
expected expression, got ':'
expected expression, got '?'
expected expression, got ']'
expected expression, got end of script
identifier starts immediately after numeric literal
missing ( before with-statement object
missing ) after with-statement object
missing : in conditional expression
missing ] after element list
missing exponent
missing hexadecimal digits after '0x'
missing octal digits after '0o'
unexpected token: ')'
unexpected token: ']'
unexpected token: identifier

1. Kesin hataların sayısı motora bağlıdır. Bu liste SpiderMonkey (Firefox) ile hazırlandı.


3

Python 3 + Flask-Env , 7 13 14 17 bayt

import\
flask_env

TIO yok, çünkü yok flask-env.

Kesişme noktası olmayan importve adın sonunda numara bulunmayan en uzun modül adını buldu. _sha256daha uzun fakat 256kendi başına hata yapmıyor. Bir kitaplık buldum, b3j0f.syncbu bir bayt daha uzun, ancak düzgün şekilde içe aktaramadım.

  • Sonra bir boşluk değiştirerek + 1 bayt importile \<newline>. İkisinden birini veya her ikisini de almak hataya neden olur.

Hala daha uzun seçenekler olabilir flask_env, gerçekten kapsamlı bir arama yapmadım, ancak ~ 70.000 modüle baktım. Önerilere açık.


256hatasız çalışır.
Aidan F. Pierce,

@ AidanF.Pierce Teşekkürler, düzeltildi.
dylnan

Denedim import *[hawkey]ve benzerdim ama ne yazık ki çalışmıyor ...
dylnan

1
hawkey standart kütüphanede değil, bu yüzden bu "hawkey ile Python" (muhtemelen başka bir yerde başka bir modülle daha iyisini yapabilirsin)
Jonathan Allan,

@ JonathanAllan İyi nokta. Şimdi gitmem gerek ama sonra
arayacağım

3

R , 14 bayt

(Sys.readlink)

Çevrimiçi deneyin!

Bu, R'de mümkün olan en uzun olabilir. Herhangi bir fonksiyonun çağrılması başarısızlığa mahkumdur, çünkü sadece fonksiyonun kaynak kodunu yazdırmakla sonuçlanacak olan fonksiyon ismi dışındaki her şeyi kaldırabilirsiniz. Bu, bitişik karakterleri kaldırırken yinelenen karakterler ve hiçbir nesne adı kalmadan varsayılan R kurulumunda en uzun adlandırılmış nesnedir.

Bu ilk deneme işe yaramadı, ama deneyerek çok şey öğrendim!

dontCheck({family;NROW})


2

Perl 5, 3 bayt

y=>

=>Soldaki korkaktan alıntı yapan “şişko virgül” tür. Yani bu eşittir

"y",

bu hiçbir şey yapmaz.

Yağ virgül olmadan, ydaha sonra tekrarlanan aynı karakterin üçü olmadan geçersiz olan harf çevirisi operatörüdür.

Sadece yağ virgülünde olduğu gibi, yalnız =ve aynı zamanda geçersiz >.




1

Standart ML , 22 bayt

val 1089=op-(765,~324)

Çevrimiçi deneyin! op-(a,b)De-şekerli şeklidir a-b. ~unary eksi anlamına gelir, bu yüzden aslında hesaplıyoruz 765+324. Bu ifade sabit üzerinde kalıpla eşleşir 1089. Bu eşleşme, programın tahrif edilmemiş olması ve başarılı olmaması durumunda başarılı olur.

Bazı haneler kaldırıldığından eşleşme başarılı olmazsa, unhandled exception: Bind . Çıkarma op-tuple bir eşleşen çünkü bir tür hatası sonucu int. Diğer tüm kaldırma işlemleri bir sözdizimi hatasıyla sonuçlanmalıdır.


1

Swift 4 , 19 bayt

[].contains{1 !=
0}

Çevrimiçi deneyin!

Bulduğum olası hataların tümü:

  • Herhangi Çıkarma [, ],{ veya }bir sözdizimi hata ile sonuçlanır
  • Çıkarma [].,Use of unresolved identifier 'contains'
  • Çıkarma .,Consecutive statements on a line must be separated by ';'
  • Çıkarma [],Reference to member 'contains' cannot be resolved without a contextual type
  • Çıkarma {1 !=␊0},Expression resolves to an unused function
  • Çıkarma 1 !=␊0,Missing return in a closure expected to return 'Bool'
    • Yeni satırın kaldırılması, '!=' is not a prefix unary operator
    • Boşlukların kaldırılması, '=' must have consistent whitespace on both sides
    • Çıkarılması !=,Missing return in a closure expected to return 'Bool'
      • Ayrıca yeni satırın kaldırılması da Consecutive statements on a line must be separated by ';'
      • Boşluk ve yeni satırın kaldırılması (ve sıfır veya rakamlardan biri) Contextual type for closure argument list expects 1 argument, which cannot be implicitly ignored
  • Çıkarılması [].contains,Closure expression is unused

Diğer ilginç programlar (her satırda bir tane):

[].isEmpty
[:].values
[1:2]




0

Retina , 2 bayt

Bu optimal olsa şaşırmam ...

()

Çevrimiçi deneyin!

Düzenli ifade boş bir grup içeriyor. Her iki parenin de çıkarılması, benzersiz parantezler nedeniyle ayrıştırma hatasına neden olur.

Diğer çözümler vardır: \(, \), \[, \], \*, \+, \?,a]


a]hata yapmaz
jimmy23013

@ jimmy23013 Ah, bunu nasıl özlediğimi bilmiyorum. Geri alındı.
mbomb007

-2

C (gcc) , 73 75 bayt

#include <ftw.h>
ABCEGHIJKLMNOPQRSUVXYZabjkmopqrsvxz234567890(){g FTW_D-1;}

Çevrimiçi deneyin!

@ Steadybox'ın cevabına dayanarak, ciddi bir hata tespit için @Angs sayesinde.

Evet, olduğu (aslında bir kullandığından kirli bir hack #defineile -DABCEGHIJKLMNOPQRSUVXYZabjkmopqrsvxz234567890=mainve -Dg=return), ama böyle bir derleyici seçeneği yasaklayan herhangi bir kural görmüyorum.


İlk satır, program bozulmamış olmadığı için alınabilir
Angs

@Angs Teşekkürler, düzeltildi (diğer derleyici seçeneğini de ekleyerek fiyatla)
trolley813

6
Bu meta yayına göre , gönderiminiz artık C dilinde değil, C89 + -DABCEGHIJKLMNOPQRSUVXYZabjkmopqrsvxz234567890=main+ -Dg=return, bu yüzden bunun, varsayılan olarak yasaklanmış olan ve zorluk için özel olarak tasarlanmış bir telafi dili kullandığını iddia ediyorum .
Dennis,
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.