깨끗하고 독특한 코드 볼링


80

도전 과제는 간단 합니다. 고유 한 바이트 만 사용하여 원하는 언어로 가능한 오랫동안 원시 프로그램 을 작성하십시오. (그 링크에서 복사 된 원시 프로그램의 전체 정의는이 질문의 맨 아래에 있습니다.)

맞습니다. 끈이 붙어 있지 않습니다. 코드는 전혀 수행 할 필요가 없으며, 오류없이 실행되고, 원시 프로그램 (위에 링크 된) 요구 사항을 충족하며 사용하는 인코딩에 중복 바이트를 포함하지 않습니다.

위의 설명과 "원시 프로그램"의 링크 된 정의를 위해, 오류는 프로그램이 완전히 실행되지 않거나 유한 한 시간이 지나면 0이 아닌 종료 코드로 종료되도록하는 것으로 정의됩니다.

이것은 이므로 가장 길고 짧지 않은 코드 승리입니다 (바이트 수로 측정). 256 개의 구별 가능한 바이트가 있기 때문에 이론적으로 가능한 최대 점수는 256입니다. 동점 인 경우 가장 높은 점수를 얻은 첫 번째 답변이 이깁니다.


위의 링크에서 복사 한 원시 프로그램의 전체 정의는 다음과 같습니다.

원시 프로그램 을 오류 자체는 없지만 N 문자의 연속 된 하위 문자열을 제거하여 수정하면 오류가 발생하는 프로그램 으로 정의 해 봅시다 1 <= N < program length.

예를 들어, 3 문자 Python 2 프로그램

`8`

길이가 1 인 하위 문자열을 제거하여 발생하는 모든 프로그램에서 오류가 발생하기 때문에 실제 프로그램입니다 (실제로 구문 오류가 발생하지만 모든 유형의 오류가 발생 함).

8`
``
`8

또한 길이가 2 인 하위 문자열을 제거하면 발생하는 모든 프로그램에서 오류가 발생합니다.

`
`

예를 들어, 오류 가없는 `8프로그램 인 경우 부분 문자열 제거의 모든 결과가 오류 여야 `8`하므로 원시적이지 않습니다 .


37
좋은 코드 결정 과제 를 만들기 위해 노력해 주셔서 감사 합니다 .
ETHproductions

서브 프로그램이 영원히 실행되지만 오류가 없으면 응답이 유효하지 않습니까?
dylnan

1
@dylnan "오류는 제한된 시간 후에 [...] 종료 [...]로 정의됩니다 ."
user202729

3
@Baldrickk 아니요,이 도전에는 허용되지 않습니다. (문제의 예를 언급한다면, 그것은 원시적 인 프로그램이 무엇인지에 대한 데모이지만 고유 바이트의 추가 요구 사항을 충족시키지 못합니다.)
Aidan F. Pierce

1
실제로 일반적으로 오류가 발생하는 경우 정의되지 않은 동작을 오류로 계산할 수 있습니까? 나는 JMP <address outside of the program's memory>어셈블리 와 같은 것을 생각하고 있습니다. 실제 컴퓨터에서는 원칙적으로 무한 반복되거나 0이 아닌 오류로 종료 될 수 있지만 일반적으로 크게 충돌합니다.
Chris

답변:


20

젤리 , 253254256 바이트

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

온라인으로 사용해보십시오! 또는 확인하십시오!

골프 언어는 볼링 할 수 있습니다 ...

  • 에서 일해서 1 바이트 . 이제는 «»사용되지 않습니다
  • 과와 2 바이트 «». 이제 최적의 점수를 얻으십시오!

어떻게?

이를 가능하게하는 Jelly의 중요한 특징은 문자열 리터럴의 시작 및 끝 문자가 거의 모든 다른 언어와 동일하지 않다는 것입니다.

프로그램 구조는 다음과 같습니다.

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

M최대 요소를 가리키는 인수의 인덱스를 찾습니다. 중요한 것은이 프로그램에 대한 인수없이 0Jelly M가에 적용될 때 체인과 Jelly 오류에 할당 한다는 것 0입니다.

전체 프로그램 M에서 작동 하지 않도록하기 위해 quick 0을 사용합니다. ¡quick M은 바로 앞의 링크 결과에 의해 결정되는 여러 번 적용됩니다 . 이 경우 해당 링크는 <239 character long string> L»«’Ɗạ‘}237$¤입니다.

L이 문자열의 길이 (239)를 취해 »«’Ɗ이것을 238로 줄입니다. »«부분은 아무것도하지 않고 Ɗ(모나드로서 마지막 세 개의 링크) 삭제하면 오류가 발생합니다. 그런 다음 문자열에 적용된 모나드 의 결과 »«’Ɗ와 절대적인 차이를 취 ‘}237$합니다. 증가하고 모나드이지만, }양자 관계로 회전이 그것이 바로 인수의에 적용 237, 산출 238. 따라서 전체 프로그램에서 산출 0됩니다.

¤nilad를 형성하는 문자열 리터럴로 다시 연결됩니다. 이 결과가되고 0, 그래서 M에러를 방지 전혀 적용되지 않는다.

가능한 서브 프로그램 :

  • 문자열의 일부가 제거되면 <string>..¤0이 아니고에 M적용되어 0오류가 발생합니다.
  • 의 일부 L»«’Ɗạ‘}237$가 제거 되면 문자열에 M적용 0되거나 문자열과 숫자 사이에 작업이 발생하여 TypeError.
  • 이 중 하나라도 ¤¡제거 M되면에 적용됩니다 0.
  • 문자열 닫기 문자 와 둘 다 ’‘제거되고 제거 되지 않으면 이후의 모든 것이 M문자열로 바뀌므로에 M작동합니다 0.
    • 문자열 폐쇄 문자 경우 와는 제거하고 얻을 모든 사이하지 않습니다 정수의리스트로 변합니다.
  • 경우 M혼자는이 제거되어 EOFError있기 때문에 ¡앞의 nilad 전에 링크를 기대하고있다.
  • 만약 M“그것을 제거 후 문자의 수는이 생길 수 것 EOFError때문에 ¤nilad에 대한 외모가 그 앞에하지만 하나를 찾을 수 없습니다. 238모나드의 일부이기 때문에 계산되지 않습니다.

이것은 거의 모든 것을 다룹니다.

나는 «»‘후자 두 개가 문자열과 다른 것을 형성하기 위해 문자 와 일치하기 때문에 문자열에 포함될 수 없기 때문에 이전에는 사용 하지 않았습니다 . 문자열에 «있을 수 “”는 없지만 그 이유를 모르겠습니다.


31

하스켈 , 39 45 50 52 60 바이트

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

식별자 mainIO a일부 유형 a에 대한 유형을 가져야 합니다. 프로그램이 실행되면 계산 main이 수행되고 결과가 삭제됩니다. 이 경우 해당 유형은 IO ((a,b)->a)입니다.

그 결과 (λ a b c d e f → return fst)IO 모나드에 주입 된 함수 fst (2 개의 튜플의 첫 번째 요소를 제공함)를 리턴하는 6 개의 인수 상수 함수 인 함수를 적용합니다. 여섯 개 인수는 LT(이하에 열거), EQ(평등에 대한 ENUM), 빈 목록 [], 3, 21.

공백은 공백, 탭없는 공백, 용지 공급, 세로 탭, OGHAM SPACE MARK, 일반 공백, 줄 바꿈 및 캐리지 리턴과 같이 공백으로 계산되는 고유 문자로 대체됩니다. 이들 중 하나라도 누락되면 인수 수가 일치하지 않습니다. 매개 변수 이름은 3 바이트 또는 4 바이트 UTF-8 문자로 𤶸陸ⵙ商ߜ新선택되며 중복 바이트가되지 않는 문자를 신중하게 선택합니다.

그의 소중한 기여에 대한 @BMO에게 감사합니다.

육각 덤프 :

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}

온라인으로 사용해보십시오!


흠, '\109999'적어도 GHC 8.2.2에서는 유효한 것 같습니다. '\10999a'어휘 오류를 생성합니다.
chepner

@ chepner : 방금 GHC 8.2.2로 테스트했으며 𚶯어휘 오류도 생성합니다.
ბიმო

2
@chepner : 가장 큰 샤아가가 maxBound :: Char, 즉 '\1114111'. 주 : 숫자는 기본적으로 소수이다, 그래서 당신은 진수를 원한다면, 당신은 넣어 가지고 x애프터 \ '\x10999a'.
nimi

@nimi Aaaand 필자는 실제로 유니 코드 이스케이프를 사용하는 빈도를 설정했다고 생각합니다. 16 진수 값에 올바른 형식을 사용하면 \x10ffff정상적으로 작동 \x110000하며 예상대로 범위를 벗어난 오류를 제공합니다.
chepner

24

파이썬 2 ,  20 21 33 39 45  50 바이트

지금은 매우 협력적인 노력입니다!

에이단 F. 피어스에이 덕분에 (교체 sorted({0})map(long,{0}))

dylnan에 +8 감사 (사용 \및 줄 바꿈 공간을 교체;에서 이동 제안 0수학적 표현식을, 교체 -1-True, 16 진수 사용)

Angs 덕분에 +11 ( 4*23+~91-> ~4836+9*1075/2그런 다음 나중에 ~197836254+0xbCABdDF-> ~875+0xDEAdFBCbc%1439/2*6)


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

온라인으로 사용해보십시오! 또는 확인 스위트를 참조하십시오

0xDEAdFBCbc는 16 진수이며로 평가됩니다 59775106236.
~비트 단위 보수이므로로 ~875평가됩니다 -876.
%모듈러스 연산자이므로로 0xDEAdFBCbc%1439평가됩니다 293.
/정수 나누기이므로로 0xDEAdFBCbc%1439/2평가됩니다 146.
*곱셈이므로로 xDEAdFBCbc%1439/2*6평가됩니다 876.
+또한이므로로 ~875+xDEAdFBCbc%1439/2*6평가됩니다 0.
... 제거 된 버전도로 평가되지 않습니다 0.

{0}set단일 요소를 포함합니다 0.

인수 sorted로 a set를 호출 하면 로 색인을 생성 할 수있는 목록이 생성됩니다 [...].

없이 sorted코드가 ({0})단지를 얻을 것 set이이 같은 방식으로 인덱싱 할 수 없습니다 if({0})[-True]:q을 올릴 것입니다 TypeError.

파이썬 인덱싱 기반-0 및 후면에서 제외 인덱싱 가능하고 True동등 1따라서 sorted({0})[-True]요소를 발견 0하는 동안, sorted({0})[True]을 올릴 IndexError같이, sorted({})[-True]sorted({0})[]잘못된 구문이다.

0발견 그 falsey의 몸, 그래서이다 if, q그것은이 인상 것이었다 그러나 경우, 실행되지 않습니다 NameError때문에 q정의되지 않았습니다.

비어 있지 않은리스트는 사실이기 때문에 우리는 if[-1]:q어느 쪽이든 다듬을 수 없습니다 .

참고 항목 확인 제품군을 볼 수 : 확인 독특한되는 바이트; 모든 오류; 코드 자체의 성공.


17

C (tcc) , x86_64, 29 31 33 39 40 바이트

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

0을 반환 합니다. 대문자 16 진수를 제안 해 주신 @feersum에게 감사드립니다.

온라인으로 사용해보십시오!

작동 원리

할당은 두 개의 정수 ( 18449664 )를 main 의 메모리 위치에 씁니다 . 32 비트 정수 및 리틀 엔디안 바이트 순서에서 정확한 바이트는 b8 00 00 00 00 c2 00 00입니다.

tcc는 정의 된 배열을 .data (대부분의 컴파일러) 로 선언하지 않기 때문에 main으로 점프하면 지정된 머신 코드가 실행됩니다.

  • b8 00 00 00 00( mov eax, imm32)는 int 0 을 eax 레지스터에 저장합니다 .

  • c2 00 00( ret imm16) 는 스택에서 추가 바이트를 0으로 반환하고 반환합니다. (eax 레지스터의 값은 함수 반환 값입니다).


15

> <> 122 바이트

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

온라인으로 사용해보십시오!

아무것도하지 않습니다. 내 원시 세계 프로그래밍 답변 과 같은 형식을 기반으로합니다 .

먼저 코드 길이가 122인지 확인하고 그렇지 않은 경우 오류를 확인하십시오. ><>프로그램은 ;명령을 사용하지 않고는 끝날 수 없지만 이 명령이 프로그램에 있으면 프로그램을 즉시 종료하기 전에 모든 것을 제거 할 수 있습니다. 이를 방지하기 위해 런타임에 p명령을 사용 ;하여 코드에 코드 를 배치 합니다. 이를 위해 6에서 6을 빼고 A그 뒤에 배치합니다 p.

올바른 2 바이트 값을 알아 내면 아마도 127 이상의 다른 값을 추가 할 것입니다. 누락 된 5 개의 값은 v^;두 줄 바꿈입니다.

7502 하위 프로그램 중 7417 개가 잘못된 명령어, 72 개가 메모리 부족 및 13 개가 메모리 부족으로 인해 오류가 발생했습니다.


13

자바 스크립트, 42 바이트

if([0XacdCADE*Proxy.length]!=362517948)田
  • 제거 i, f또는 if원인이됩니다 SyntaxError: missing ; before statement;
  • 제거 하면 SyntaxError: expected expression, got end of script;
  • 1 또는 2 바이트를 제거 하면 Invalid or unexpected token;
  • 부울 표현식을 수정하면 구문 오류 또는 참조 오류가 발생합니다.

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

Brain-Flak , 2 바이트

<>

온라인으로 사용해보십시오!

또는 [], {}또는 (). 브래킷을 제거하면 다른 브래킷이 일치하지 않습니다.

이것이 최적의 솔루션이라는 증거 :

Brain-Flak 프로그램은 nilads (한 쌍의 브래킷) 또는 monads (하나 이상의 nilads를 포함하는 브래킷)로 구성됩니다. 모나드는 하나 이상의 nilad를 간단히 제거 할 수 있기 때문에 원시 프로그램에있을 수 없습니다. 마찬가지로 프로그램을 중단하지 않고 하나를 제거 할 수 있으므로 프로그램에 둘 이상의 nilad를 가질 수 없습니다.

따라서이 언어는 고유하거나 고유 한 프로그래밍에 가장 적합한 언어가 아닐 수 있습니다.


6

Ada, 110 바이트 (latin1)

아마도 업계에서 사용중인 언어에서 얻을 수있는 가장 좋은 대답은 무엇입니까?

16 진 덤프 :

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       ............;.

으로 끝나고 .ads실행중인 파일에 저장하여 컴파일하십시오 gcc -c <filename>. 아무것도하지 않는 실행 파일을 생성합니다. (TIO는 .adb파일 에 코드를 넣고 gcc기본적으로 일치하는 사양을 찾으려고 하므로 TIO 링크를 제공 할 수 없음 )

기본적으로 이름이 남용 대문자 / 소문자 latin1 문자로 패키지를 선언합니다. 각 공백마다 다른 공백 문자가 필요하므로 공백, CR, LF 및 TAB을 사용합니다.

vim 버전에서 어떻게 보이는지 :

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

작동 원리

Ada에서는 사양도 컴파일 할 수 있습니다. 사양은 c의 헤더 파일과 비슷하지만 더 완전한 기능을 갖추고 있으며 기본 코드를 컴파일 할 수 있습니다. 모든 사양이 유효하려면 형식 package <NAME> is ... end <NAME>;<NAME>일치 해야합니다 . Ada의 좋은 점은 대소 문자를 구분하지 않는다는 것입니다. 따라서 이름에 대문자와 소문자 변형이있는 한 계속 사용하면 좋습니다!

어려운 부분은 컴파일 가능한 유닛을 얻는 것입니다. 일반적으로 Ada 프로그램에는 최종 실행 파일이 될 패키지 외부에 '메인'프로 시저 또는 기능이 있습니다. 불행히도 프로 시저에는 begin키워드가 필요하므로 너무 많은 키워드가 필요하고 e(2 개의 경우 만 알려짐) 함수에는 return키워드가 필요하므로 너무 많은 키워드가 필요합니다 n. 따라서 패키지를 컴파일해야했습니다.


4

C, 8 바이트

main(){}

아무것도하지 않습니다.

온라인으로 사용해보십시오!


1
어쩌면 나는 도전을 이해하지 못하지만 어떻 main(){short x;}
Jerry Jeremiah

@JerryJeremiah : 아니오, main(){short;}만 컴파일합니다 warning: useless type name in empty declaration. C99와 C ++에는 명시 적 반환 유형이 필요하다고 생각하므로 int main(또는 unsigned main) 작동 할 수는 있지만 gcc로는 작동하지 않습니다 -std=c11.
피터 코 데스

@JerryJeremiah은 : a는 return 0;암시도 없다 C89, 가능 수 있습니다 return 0말에 main. 다른 답변에 따르면 0이 아닌 상태로 종료하는 것은 실패로 간주 될 수 있습니다. -Werror코드 볼링에서 컴파일러 플래그를 추가 하면 점수에 합산됩니까? C11 위반을 엄격히 시행하면 훨씬 더 긴 프로그램을 허용 할 수 있기 때문입니다. 흠, #include<>무언가를 사용한 다음 사용하십시오. 포함과 사용법을 모두 제거 할 수 없으며 프로토 타입이나 매크로 정의없이 충돌이 발생하면 승리합니다.
피터 코 데스

@PeterCordes 나는 그것에 대해 생각했지만, main그리고 include모두 포함 i당신이 모두를 가질 수 있도록. 함수를 선언하고 사용하는 것과 비슷합니다. 또한 return전혀 사용하여 생각합니다.
Chris

죄송합니다. 고유 바이트 요구 사항을 잊었습니다. 물론 int main작동하지 않습니다.
Peter Cordes

4

자바 스크립트, 22 바이트

with(0xF?JSON:[])parse

온라인으로 사용해보십시오!

가능한 오류

변경되면 다음 오류 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. 정확한 오차의 정확한 수는 엔진에 따라 다릅니다. 이 목록은 SpiderMonkey (Firefox)로 생성되었습니다.


3

Python 3 + Flask-Env , 7 13 14 17 바이트

import\
flask_env

이 없기 때문에 TIO가 없습니다 flask-env.

교차 import하지 않고 이름 끝에 숫자 가없는 가장 긴 모듈 이름을 찾았습니다 . _sha256더 길지만 256자체 오류는 없습니다. 하나의 라이브러리를 찾았습니다. b3j0f.sync즉 1 바이트 더 길지만 제대로 가져올 수는 없습니다.

  • 이후 공간을 대체하여 하나의 바이트 import\<newline>. 둘 중 하나 또는 둘 다 꺼내면 오류가 발생합니다.

아직보다 더 긴 옵션이있을 수 있습니다. flask_env실제로 철저한 검색을하지는 않았지만 ~ 70,000 개의 모듈을 살펴 보았습니다. 제안을 엽니 다.


256오류없이 실행됩니다.
Aidan F. Pierce

@ AidanF.Pierce 감사합니다.
dylnan

나는 시도 import *[hawkey]하고 비슷하지만 불행하게도 작동하지 않습니다 ...
dylnan

1
hawkey는 표준 라이브러리에 없기 때문에 이것은 "Phothon with hawkey"입니다 (아마도 다른 모듈로 더 잘 할 수 있습니다)
Jonathan Allan

@JonathanAllan 좋은 지적입니다. 지금 가야하지만 나중에 검색하겠습니다
dylnan

3

R , 14 바이트

(Sys.readlink)

온라인으로 사용해보십시오!

이것은 R에서 가장 길 수 있습니다. 함수 이름 이외의 모든 것을 제거 할 수 있기 때문에 함수의 소스 코드를 인쇄 할 수 있기 때문에 어떤 함수를 호출해도 실패 할 수 있습니다. 연속 문자를 제거 할 때 중복 문자가없고 남은 오브젝트 이름이없는 기본 R 설정에서 가장 긴 이름의 오브젝트입니다.

이 첫 번째 시도는 효과가 없었지만 시도하여 많은 것을 배웠습니다!

dontCheck({family;NROW})


2

펄 5, 3 바이트

y=>

=>"팻 쉼표"는 왼쪽에있는 단어를 인용합니다. 따라서 이것은

"y",

아무것도하지 않습니다.

뚱뚱한 쉼표가 없으면 y음역 연산자는 나중에 동일한 문자 중 세 개가 반복되지 않으면 유효하지 않습니다.

그대로 혼자 지방 쉼표도 유효 =하고 >혼자.




1

표준 ML , 22 바이트

val 1089=op-(765,~324)

온라인으로 사용해보십시오! op-(a,b)의 설탕 제거 형태입니다 a-b. ~는 단항 빼기를 나타내므로 실제로 계산하고 765+324있습니다. 이 표현식은 constant 패턴과 일치합니다 1089. 이 일치는 프로그램이 변경되지 않았으며 아무것도하지 않으면 성공합니다.

일부 숫자가 제거되어 일치하지 않으면을 얻습니다 unhandled exception: Bind. op-튜플이에 일치하므로 유형을 제거 하면 유형 오류가 발생합니다 int. 다른 모든 제거는 구문 오류를 발생시킵니다.


1

스위프트 4 , 19 바이트

[].contains{1 !=
0}

온라인으로 사용해보십시오!

내가 찾은 모든 가능한 오류는 다음과 같습니다.

  • 임의의 제거 [, ], {또는 }구문 오류가 발생할 것이다
  • 제거 [].하면Use of unresolved identifier 'contains'
  • 제거 .하면Consecutive statements on a line must be separated by ';'
  • 제거 []하면Reference to member 'contains' cannot be resolved without a contextual type
  • 제거 {1 !=␊0}하면Expression resolves to an unused function
  • 제거 1 !=␊0하면Missing return in a closure expected to return 'Bool'
    • 개행을 제거하면 '!=' is not a prefix unary operator
    • 공간을 제거하면 '=' must have consistent whitespace on both sides
    • 제거 !=하면Missing return in a closure expected to return 'Bool'
      • 또한 개행을 제거하면 Consecutive statements on a line must be separated by ';'
      • 공백과 줄 바꿈을 제거하면 숫자가 0 또는 1입니다. Contextual type for closure argument list expects 1 argument, which cannot be implicitly ignored
  • 제거 [].contains하면Closure expression is unused

다른 흥미로운 프로그램은 다음과 같습니다 (각 줄에 하나씩).

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

여기에는 2 개의 as
caird coinheringaahing



0

망막 , 2 바이트

이것이 최적이라면 놀라지 않을 것입니다 ...

()

온라인으로 사용해보십시오!

정규식에 빈 그룹이 포함되어 있습니다. 구문 분석을 제거하면 괄호가 일치하지 않아 구문 분석 오류가 발생합니다.

다른 해결책은 : \(, \), \[, \], \*, \+, \?,a]


a]오류가 없습니다.
jimmy23013

@ jimmy23013 아, 어떻게 그리웠는지 모르겠어요. 복구하다.
mbomb007

-2

C (gcc) , 73 75 바이트

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

온라인으로 사용해보십시오!

@Steadybox의 답변을 바탕으로 @Angs 덕분에 심각한 오류를 감지했습니다.

예, 그것은 이다 (이 사실에를 사용하기 때문에 더러운 해킹 #define으로 -DABCEGHIJKLMNOPQRSUVXYZabjkmopqrsvxz234567890=main하고 -Dg=return),하지만 난 그런 컴파일러 옵션을 금지하는 어떤 규칙이 표시되지 않습니다.


첫 줄을 빼앗아 프로그램이 깨끗하지 않음
Angs

@Angs 고마워, 고정 (다른 컴파일러 옵션을 추가하는 가격으로)
trolley813

6
이 메타 게시물 에 따르면 귀하의 제출물은 더 이상 C 언어가 아니라 C89 + -DABCEGHIJKLMNOPQRSUVXYZabjkmopqrsvxz234567890=main+ -Dg=return로되어 있으므로 기본적으로 금지되어 있는 과제 용으로 특별히 고안된 언어를 사용 한다고 주장합니다 .
Dennis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.