일반 영어로 Quine 작성


41

단일 공백으로 구분 된 실제 영어 단어로 구성된 quine 을 작성 하십시오. "단어"는 소문자와 대문자 만 포함하는 문자열로 정의됩니다 ( /[a-zA-Z]+/정규식에서). "실제"가 되려면 공식 Scrabble 사전 에서 단어를 인식해야합니다 .

나는 Scrabble 사전을 사용하고 있습니다. 왜냐하면 무엇이 유효하지 않은지에 대한 명확한 대답을 제공하기 때문입니다. 사전이 일반인 회색 영역이 너무 많습니다. "A"와 "I"( "quine"는 말할 것도없고)는 유효한 글자 맞추기가 아닙니다.

대부분의 프로그래밍 언어에서는 문자와 공백 사용하여 퀴네를 작성하는 것이 거의 불가능하므로 단어 사이의 단일 공백을 선택한 문자로 바꿀 수 있습니다. 첫 번째 단어의 앞과 마지막 단어의 끝에 문자를 추가 할 수도 있습니다. 이러한 추가 문자는 문자 (az, AZ)를 제외한 모든 문자 (줄 바꾸기 및 비 ASCII 포함) 일 수 있습니다 . 추가하면 페널티가 있습니다 (점수 참조).

세부

  • 평소와 같이 quines는 자체 소스 코드를 읽거나 액세스하지 못할 수 있습니다. ( HQ9 +의 Q 명령이이를 위반한다고 말하고 싶습니다 .)
  • 출력은 stdout 또는 유사한 대안으로 이동해야합니다. 입력이 없습니다.
  • 단어를 올바르게 대문자로 표기 할 필요는 없습니다. 대문자와 소문자를 사용할 수 있습니다. 단어의 순서는 의미가 없습니다.
  • 프로그램에서 단어를 3 번 ​​이상 사용할 수 없습니다. 다르게 대문자로 된 단어는 여전히 같은 단어입니다 (예 : 'DOG', 'dog'및 'dOg'는 모두 같은 단어입니다).
  • 단지 수 PHP 또는 HTML 같은 언어 사용 고양이 그 내용 아웃 사소한 허점 간주되어 허용되지 않습니다.
  • 프로그램은 적어도 하나의 단어를 포함해야합니다.

채점

당신의 점수는 프로그램에서 "실제 단어"의 수에 다음과 같은 처벌을 더한 것입니다.

  • 다른 캐릭터로 교체 된 모든 공간에 +1
  • N N 매 n 문자를 사용하면 (예,의 N 전원 N에) 첫 번째 단어 앞에 추가
  • N N 매 n 문자를 당신은 마지막 단어 다음에 추가

예를 들어, 프로그램

We all LIKE PROgraMmING

4 개의 단어가 포함되어 있기 때문에 4 점을받습니다. 공백이 추가되거나 대체 된 문자가 없습니다. 물론 출력은입니다 We all LIKE PROgraMmING.

프로그램

!We@all LIKE#PROgraMmING- =

점수는 4 + 2 + 1 + 27 = 34입니다. 단어는 4, 교체 된 공간은 2 !, 앞면 은 1 - =, 끝면 은 27입니다 . 물론 출력은입니다 !We@all LIKE#PROgraMmING- =.

가장 낮은 점수가 이깁니다. 타이 브레이커는 가장 적은 페널티 포인트로 답변을합니다. 여전히 동점이 있다면 가장 높은 투표 응답이 승리합니다.


1
해당 사전도 목록으로 존재합니까? 각 단어를 개별적으로 확인하는 것보다 탐색하는 것이 훨씬 유용합니다.
Martin Ender

16
셰익스피어 누구?
dwana


1
@ JanDvorak 나는 그렇게 생각하지 않는다 ... 나는 이것과 같은 것을 쓸 수 없다는 사실이 다른 사람들이 이것을 나쁜 질문으로 보아서는 안된다. 그것은 꽤 어려운 도전이지만 유효하지는 않다.
rorlork

7
나는 여전히 셰익스피어 솔루션에 관심이 있습니다.
John Dvorak

답변:


25

골프 스크립트, 8 단어 + 8 기호 = 20 16 (3?)

{four"words.written~twice"four}words.written~twice

단어는 단지 필러이고, 코어는 작은 퀴인 코어입니다.

{".~"}.~

복제 및 평가 명령을 추가하는 기능을 복제하고 평가합니다. 기능이 인쇄되면 자동으로 문자열 화됩니다. 이것은 무언가를 하는 가장 작은 quine입니다 .

또는 결코 평가되지 않는 함수 리터럴을 사용할 수 있습니다. 하지만 속임수처럼 느껴집니다 ...

{whatever}

연결이 필요하지 않습니다. {a`b"x.y~z"c}x.y~z
데니스

@Dennis 나는이 경우 검사조차 필요하지 않습니다. 감사! 내가 OP 뭔가 ... 요청해야 같은 느낌
존 드보락

8
@Cephalopod 나는 내 자신의 소스 코드를 읽지 않는다. 나는 단지 스택에 함수를 푸시하고 런타임은 나를 위해 그것을 출력한다. 내 소스 코드 전체가 함수 리터럴이라는 사실을 행복하게 알지 못한다.
존 드보락

1
나는 생각 {whatever}너무 사소한 규칙 위반 ( "그 내용을 알아 단지 고양이가 사소한 허점 간주 할 수 있으며 허용되지 않습니다 PHP 또는 HTML 같은 언어를 사용합니다.")
Claudiu

1
@Claudiu는 솔루션이 아니라 언어에 대한 규칙입니다. 그래서 내가 물었다.
John Dvorak

54

> <> , 25 단어 + (22 + 1 + 1 1 ) 추가 = 57 49

세상에

'brr3deep*clap6beep+orb5flap*leap4deep+clap5beep5flap*leap9deep9clap*beep+flap0placed apple alp0leap=clip?lob8blip*flip0clip.

규칙에 "입력이 없습니다."라고 표시되어 있으므로이 프로그램이 작동하려면 빈 파일로 파이프해야합니다.

아, 그리고 예, brr등이며, 유효한 스크래블 단어 tsktskpfft.

설명

우선, 다음 단어는 혐의가 없습니다 :

deep clap beep flap leap clip blip flip

이것은 두 가지 이유 때문입니다.

  • abcdefl푸시 번호 (각각 10, 11, 12, 13, 14, 15 및 스택 길이). 또한 iEOF가 충족되면 입력이없는 것처럼 보며 -1을 누릅니다.
  • p명령은 세 개의 문자 팝업 v,y,x과 장소 v위치에를 x,y.

예,> <>를 사용하면 소스 코드를 즉시 수정할 수 있습니다! 우리는 p터지기 위해 필요하기 때문에 실제로 그것을 사용하지는 않습니다 .

우리가 이러한 놈을 제거하면 다음과 같은 결과를 얻습니다.

'brr3*6+orb5*4+55*99*+0placed apple alp0=?lob8*0.

비슷한 방법으로, laced app부분 placed applee alp의 부분 apple alp도 어떤 작전 없습니다, 그리고 rrbrr단지 우리가 또한 제거 할 수있는, 두 번 스택을 반전 :

'b3*6+orb5*4+55*99*+0pl0=?lob8*0.

마지막으로 일반> <> 프로그램처럼 보이는 것이 있습니다! 아이디어는 표준> <> quine을 사용하는 것입니다.

  • 처음 '은 문자열 파싱을 시작하여 다른 문자를 칠 때까지 모든 문자를 충족시킵니다.'
  • 우리는 줄의 끝까지 문자를 계속 밀어 넣습니다.이 시점에서 명령 포인터를 처음으로 다시 랩핑합니다 (> <>가 환상이기 때문에)
  • 우리는 처음에 '다시 착륙 하고 문자열 파싱을 중단 합니다. 결과적으로 프로그램의 모든 단일 문자 (초기 제외 ')를 스택에 푸시했습니다.

그런 다음 다음이 발생합니다.

b3*6+o                Print the initial ' quote (ASCII 39)
r                     Reverse the stack
b5*4+                 Push a ';' (ASCII 59)
55*99*+0p             Replace the 'l' of 'lob' with ';'

(print loop)
l0=?;                 If the stack is empty, terminate. Otherwise...
o                     Print the top of the stack
b8*0.                 Jump back to the beginning of the loop

"프로그램에서 단어를 3 번 ​​이상 사용할 수 없습니다. 다르게 대문자로 된 단어는 여전히 같은 단어입니다 (예 : 'DOG', 'dog'및 'dOg'는 모두 같은 단어입니다." 어쨌든 당신은 저에게서 공감대를 얻습니다.
rorlork

@ rcrmn 나는 그 규칙에 대해 완전히 잊어 버린 너무 많은 단어를 계속 추가했습니다! 사용하지 않으려 고했지만 지금 수정했습니다 i.
Sp3000

1
TIL "pa", "la"및 "be"는 Scrabble에서 유효한 단어입니다.
John Dvorak

20
당신의 프로그램을 소리내어 읽으면 펀치 카드 컴퓨터가 어떤 소리를 냈는지 상상할 수 있습니다.
Calvin 's Hobbies

10
R2D2 운영 체제의 소스에서 해당 프로그램을 도난했다고 생각합니다.
반 시계 회전을 중단

21

치킨 , 1 단어

나는 일반적으로 esolangs에 있지 않지만, 이것은 이것에 완벽 해 보였습니다. 나는 이것이 진정한 quine 이라고 생각 한다.

chicken

닭 한 마리를 스택에 넣습니다. 그런 다음 스택이 표시됩니다.


1
이 (그리고 Julia 답변) 경계는 사소하게 유효하지 않습니다. 당신은 여기에 그들을 유지할 수 있지만 수락에 대한 약속은 없습니다.
Calvin 's Hobbies

@ Calvin'sHobbies 공정성을 위해이 내용이 너무 허약하다고 생각되면 기꺼이 삭제하겠습니다. 저는 애플 스크립트 솔루션을 개발하고 있었지만 "단어를 3 번 ​​이상 사용할 수 없습니다"라는 규칙에 실망했습니다. 그래서 나는 대신 싼 트릭을 갔다 :-)
Digital Trauma

@ Calvin'sHobbies : 저는 Julia 제출의 저자입니다. 너무 경계 적이라고 생각되면 내 게시물을 제거하는 것에 대한 DigitalTrauma의 감정을 무시했습니다. 나도 R을 했어. 너무 가깝습니까?
Alex A.

@ 알렉스와 DT : 그것은 당신에게 달려 있습니다. 나는 어느 쪽의 대답도 받아들이지 않을 것이지만 나는 그들이 여기있는 것을 신경 쓰지 않습니다. 아이디어는 줄리아의 아이디어와 거의 동일하지만 R 답변은 여전히 ​​찢어졌습니다.
Calvin 's Hobbies

12

R, 2 단어 + 1 교체 + 1¹ 후행 = 4

아무것도 할당되지 않은 객체는 stdout으로 인쇄됩니다. 표현식은 객체이므로 다음 코드가 인쇄됩니다.

expression(puppy)

이전 제출, 5 점 :

function(hello)hello

당신은 내 cheaty 3 점 솔루션에서 영감을 얻었습니까? ;-)
John Dvorak

1
@ JanDvorak : 나는 이것을 게시하기 전에 실제로 그것을 보지 못했지만 이제는 회고의 영감의 원천입니다.
Alex A.

12

파이썬 2, 58 = 37 단어 + 21 문장 부호

programming=puzzle=hash and'fear=coerce and"programming=puzzle=hash and%rif reload else fire;exec prog"or English;ramming=None or"ramming"if license else pirate;print fear%puzzle+ramming'if reload else fire;exec programming

몇 가지 줄 바꿈이 추가되었습니다.

programming=puzzle=hash and'fear=coerce and"programming=puzzle=hash
and%rif reload else fire;exec prog"or English;ramming=None or
"ramming"if license else pirate;print fear%puzzle+ramming'
if reload else fire;exec programming

단어 당 세 가지 용도로 사용하기가 어려웠습니다. 나는 모든 코드와 함께 문자열을 3 번 이상 사용하고 싶었고 모든 문자열은 if else and or제한된 공급 장치 만 가진 연산자 로 절연되어야했습니다 .


@ user23013 죄송합니다. 임의 식별자로 바꾸는 것을 잊었습니다.
feersum

7

줄리아, 1 단어 + 1¹ 선행 = 2

Julia에는 기호를 사용하여 정의 된 기호라는 개체가 있습니다 :. 내 R 솔루션과 마찬가지로 제출하면 인쇄됩니다.

:puppy

5

DOS 명령 줄, 10

& was unexpected at this time.

오류 quine, 금지되지 않은 것 같습니다


1
이 코드는 코드의 어떤 부분도 "인코딩"하지 않습니다. quine에 대한 우리의 정의를 참조
MilkyWay90

@ MilkyWay90 정의를 사용하면 &전체 코드를 인코딩하고 출력을 중지합니다
l4m2

오, 당신은 내 downvote를 제거 할 수 있도록 답변을 편집 할 수 있습니다
MilkyWay90

1
재미있는 허점의 대답은 ... &단어입니까?
Redwolf 프로그램

@RedwolfPrograms 아니요, 그러나 & 두 개의 기호입니다. 5 (단어) + 1 (트레일 링) + 2 ^ 2 선행 = 10.
Draco18s

3

룬 마법 , 4 + 3 + 1 1 +1 1 = 9

"hOt3OX4NOt+kNOt@

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

단어 : hot ox not knot(4)
교체 : 3 4 +(3)
전 : "(1)
후 : @(1)

GNOQWghtxzRunic 에서는 모든 문자 가 공간과 마침표뿐 아니라 점수가 없습니다. X및에 k필요한 기능을 포함하여 다음과 같은 단어 목록이 제공됩니다.

5 Letter Word(s)
  thong
4 Letter Word(s)
  gong goth gowk gown hogg hong honk howk knot know nogg nowt tong town wonk wont zonk
3 Letter Word(s)
  got gox hog hon hot how nog noh not now nth own tho tog ton tow two who wok won wot
2 Letter Word(s)
  go ho no oh on ow ox to wo

나는 체리가 들어가는 공간의 필요에 따라 골라 웃겼습니다.

모든 NOP 문자를 제거하면 다음과 같은 메시지가 나타납니다.

"3X4+k@

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


0

응? -단어 당 1 단어 + 1 ** 1 / 1 ^ 1 = 1 문자 = 2 총점.

Ouch!

Ouch! 허풍이 유효합니까?

처럼 실행 하면 현재 디렉토리에 pythuhn.py Ouch!이름이 지정된 파일이있을 수 없습니다 Ouch!.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.