코드 골프가 코드를 골프화 할 수 있다면 코드 골프는 얼마나 많은 코드를 사용합니까?


55

두 개의 단어를 입력과 출력으로 사용하는 함수 나 프로그램을 작성하십시오. "영어로 쓰인 목재를 chuck 아 먹을 수 있다면 우드 척 척은 얼마나 많은 나무입니까?"

출력은 첫 단어를 네 번 사용합니다

  • 얼마나 wood것이다 wood척 척은 경우에 wood척 척 수 wood?

두 번째 단어는 네 번

  • 나무가 chuck chuck나무가 chuck될 수 있다면 나무는 얼마나 chuck될까요?

나머지 출력은 모든 입력에 대해 동일합니다.

  • How much우드 would aif a우드 could척 척 나무?

입력 및 출력은 사용자의 언어가 텍스트 문자열을 처리하는 것으로 합리적으로 인식하는 모든 형식 일 수 있습니다. 출력은 대문자, 공백 및 부족, 끝 물음표를 포함하여 표시된 형식이어야합니다. 선택적인 후행 줄 바꿈이 허용됩니다.

이상적으로 코드는 인쇄 가능한 ASCII 문자가 포함 된 입력을 처리합니다. 그러나 입력 가능한 인쇄 가능한 ASCII의 하위 집합으로 입력을 제한 할 수 있습니다. 당신의 대답에 이것을 표시하십시오. 더 큰 문자 집합을 처리하는 것은 물론 좋습니다.

입력-출력 쌍의 예 :

"wood", "chuck"
"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"

"ground", "hog"
"How much ground would a groundhog hog if a groundhog could hog ground?"

"bar", "keep"
"How much bar would a barkeep keep if a barkeep could keep bar?"

"money", "belt"
"How much money would a moneybelt belt if a moneybelt could belt money?"

"rain", "fall"
"How much rain would a rainfall fall if a rainfall could fall rain?"

"hair", "cut"
"How much hair would a haircut cut if a haircut could cut hair?"

"green", "house"
"How much green would a greenhouse house if a greenhouse could house green?"

"jabber", "wock"
"How much jabber would a jabberwock wock if a jabberwock could wock jabber?"

"pine", "apple"
"How much pine would a pineapple apple if a pineapple could apple pine?"

"Rob", "Lowe"
"How much Rob would a RobLowe Lowe if a RobLowe could Lowe Rob?"

"code", "golf"
"How much code would a codegolf golf if a codegolf could golf code?"

"fish", ""
"How much fish would a fish  if a fish could  fish?"

"", "fish"
"How much  would a fish fish if a fish could fish ?"

"", ""
"How much  would a   if a  could  ?"

"  ", "     "
"How much    would a               if a         could         ?"

"would a", "how much"
"How much would a would a would ahow much how much if a would ahow much could how much would a?"

이것은 이므로 가장 적은 바이트가 이깁니다. 다른 언어로 더 적은 바이트로 처리 할 수 ​​있더라도 모든 언어로 응답을 환영합니다.

( 이 딱딱한 패턴보다 하나의 입력 쌍을 더 잘 사용 하는 이 meme 에서 영감을 얻었습니다 ....)


2
두 단어가 두 개의 구별되는 단어 라고 가정 할 수 있습니까?
Jonathan Allan

4
... "", ""아니요 : p
Jonathan Allan

1
@Chronocidal 나는 당신이 실망을 참을 수 없어 ....
그렉 마틴

6
두. 두 개의 코드를 골프화합니다.
user2357112

1
Aw, 나는 이것이 다른 코드에서 간단한 골프 변형을 할 수있는 짧은 프로그램에 관한 것이기를 바랐다.
aschepler

답변:


40

파이썬 3 , 70 67 바이트

"How much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?".format

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

신발이 맞는다면 ..

오타 잡기위한 manatwork 덕분에

탁월한 -3 바이트 아이디어 를 제공 한 Remco Haszing 에게 감사드립니다.

나는 이것이 여전히 유효한 제출이라고 가정합니다. (남자이기 때문에 시도하지 않는 것이 너무 시원합니다). OP가 이것이 수용 가능한지 여부를 명확히 할 수 있다면 ( 그 자체로 함수를 작성 하지 않았기 때문에 ) 감사하겠습니다.

업데이트 : 축복받은 모든 것이 좋습니다 :)


이전 버전:

lambda a,b:f"How much {a} would a {a+b} {b} if a {a+b} could {b} {a}?"

2
어쩌면 관련이없는,하지만 자동 포맷 문자열은 이전 3.6 파이썬 버전에서 쉽게 사용할 수 없습니다
M.Herzkamp

3
@ M.Herzkamp 그래서?
ruohola

16
@ruohola M.Herzkamp가이 답변의 제목은 "Python 3"이 아니라 "Python 3.6"이어야한다고 생각합니다.
Mr Lister

8
더 짧고 Python 2 호환 가능 (67 바이트) : "How much {0} would a {0}{1} {1} if a {1}{0} could {1} {0}?".format. 형식화되지 않은 문자열에 바인딩 된 함수를 반환합니다.
Remco Haszing

1
저는 파이썬 전문가는 아니지만 print("How much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?".format("wood","chuck"))원하는 출력을 생성 한 이후 이를 받아들이지 않을 이유가 없습니다. :)
Greg Martin

25

T-SQL, 82 바이트

SELECT'How much '+w+' would a '+w+c+' '+c+' if a '+w+c+' could '+c+' '+w+'?'FROM t

입력은 기존의 테이블에서 가져 열이 와 , 우리의 IO의 규칙에 따라 .twc

1 바이트 더 길지만 어떤 이유로 약간 더 기쁘게 :

SELECT REPLACE(REPLACE('How much 1 would a 12 2 if a 12 could 2 1?',1,w),2,c)FROM t

이 버전은 첫 단어 숫자 를 포함 하지 않는 입력의 하위 집합에서 작동합니다 .2w

SQL을 사용하고 있기 때문에 모든 예제를 테이블에 미리로드하고 한 번에 모두 실행할 수 있습니다.

여기에 이미지 설명을 입력하십시오


2
megatrain을위한 +1000000 가상 열차
Greg Martin

5
"w"와 "c"는 각각 "wood"와 "chuck"을 의미한다고 가정합니다 : P
user253751

이 작업은 SQL * Plus (테이블 없음)에서 호출 한대로 Oracle에서 67 바이트로 수행 할 수 있습니다.select'How much &1 would a &1&2 &2 if a &1&2 could &2 &1?'from dual
Ben

16

배쉬 , 50 바이트

echo How much $2 {would,$1\ if}\ a\ $2$1 could $@?

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

아래 주석의 도움으로 인해 -5 바이트.




1
Nahuel의 골프를 조정할 때 불필요한 백 슬래시를 추가했습니다. 여기에 53이 있습니다. (실제로 50이어야하지만 첫 번째 단어를 $ 2로, 두 번째 단어를 $ 1로 취하는 것을 막을 수있는 것은 없습니다.)
Grimmy

2
@ 그림 : 매개 변수를 되돌릴 수있는 원래 포스터의 문제에 대한 의견이 있습니다. 50 바이트의 탁월한 답변으로 답변을 업데이트하고 있습니다. 감사!
spuck

1
@roblogic : 백 슬래시는 공백에서 단어 분리를 피하기 위해 공백을 인용하고 중괄호는 두 개의 단어로 구성되어 중괄호 안의 각 문자열과 중괄호 뒤에 오는 문자 (단어의 일부)와 함께 두 단어를 형성합니다. 각 문자열의 끝에 추가됩니다. 단어 분리를 시각화하기 위해 대괄호를 추가하면 "[a {bc, de} f]"는 "[abcf] [adef]"의 두 단어가됩니다. 그래서 "[{$ 1 \ 경우 것} \ \ $ 2 $ 1]"가 "[\ 것 \ $ 2 $ 1] [$ 1 \ 만약 \ $ 2 $ 1 \]"
spuck을

15

Stax , 33 31 30 29 바이트

재귀 덕분에 -1 !

¢èO∩sP↑å♥|1╧ì}ò♂xb■δå«█Γ╨╦►Q²

staxlang.xyz에서 실행하고 디버그하십시오!

각 구성 요소를 스택으로 역순으로 밀고 모두 공백으로 결합하십시오.

압축 해제 (35 바이트) 및 설명 :

X'?+;`IM'`x;+Y`~^$`,y`75\`x`Q)("`LJ
X                                      Set register X to the first word
                                       "wood"
 '?+                                   Append a question mark, popping from the input stack
                                       "wood?"
    ;                                  Peek from input stack and push to main stack
                                       "chuck" "wood?"
     `IM'`                             Literal "could"
                                       "could" "chuck" "wood?"
          x;+Y                         Peek register x. Peek input. Concatenate. Set register Y.
                                       "woodchuck" "could" "chuck" "wood?"
              et cetera, ad nauseam
                                  LJ   Listify the stack and join with spaces
                                       Implicit print

``사이의 모든 것은 압축 문자열 리터럴입니다. 그 쉼표는 매우 중요합니다. 입력 스택에서 마지막으로 읽을 때 출력 끝에 여분의 "척"을 피하기 위해 엿보기보다는 팝해야합니다.

몇 가지 테스트 사례에 대해 두 입력을 모두 같은 줄에 배치하고 순서가 반대임을 알 수 있습니다. 이것은 빈 문자열이나 공백 문자열을 입력으로 사용하기 위해 필요합니다.

입력에 제한이있는 27 26 바이트

å▓Zf╢7)╪♪²p╞8ó╪l▼]<¡REïSèΣ

staxlang.xyz에서 실행하고 디버그하십시오!

@dzaima의 SOGL 과 마찬가지로 첫 번째 입력에 소문자 'y'가 있으면 실패합니다. "by by yb가 있다면 a by y는 얼마입니까?"라는 문자열을 누른 다음 한 쌍의 교체를 수행합니다.


"몇 가지 테스트 사례에 대해 두 입력을 모두 같은 줄에 배치하고 순서가 반대라는 것을 알 수 있습니다. 빈 문자열이나 공백 문자열을 입력으로 사용해야합니다." 입력 구분 기호를 사용하지 않으면 입력 이 방해받지 않고 빈 문자열이됩니다. 여러 테스트 사례를 표시하는 것이 어색합니다.
재귀

1
또한 ,31 바이트 솔루션 의 선두 를 제거 할 수있는 것으로 보입니다 . 다음 +은 입력 스택에서 암시 적으로 팝업되므로 동작이 동일합니다.
재귀

13

자바 스크립트, 70 바이트

지루한!

a=>b=>`How much ${a} would a ${a+b} ${b} if a ${a+b} could ${b} ${a}?`

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

약간 덜 지루한!

a=>"How much 0 would a 01 1 if a 01 could 1 0?".replace(/\d/g,x=>a[x])

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


첫 번째 예에서와 같이 카레 함수를 출력 할 수 있습니까?
깃털 왕관

@Feathercrown, 나는 함수를 출력 하지 않고 TIO에서 볼 수 있듯이 둘 다 (예 :)를 호출 합니다 f(a)(b). 그러나 그렇습니다. 우리는 커리 함수를 허용하는 데 동의하고 함수를 실제로 반환하는 것에 대한 합의에 가깝다고 생각합니다.
얽히고 설킨

출력으로 나는 코드가 평가 될 때 함수를 반환한다는 것을 의미했습니다. 바이트를 계산하는 주어진 코드에는 호출이 없습니다. 커리되지 않은 함수 만 반환되는 것을 보았으므로 카레가 제대로되었는지 확인하고있었습니다.
깃털 왕관

6

SOGL , 32 30 바이트

^.](9V;⅜‛°@Ε¬tπs%.½Ω‘⁽ b,ŗ y,ŗ

여기 사용해보십시오!

첫 번째 입력은 문자를 포함 할 수 없으며 yASCII (및 유니 코드)의 합리적인 하위 집합을 왼쪽으로 남겨 둡니다.

½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq(‚7‘는 압축 된 문자열입니다 "how much b would a by y if a by could y b?"(선택된 문자로 필요한 단어는 모두 사전에 가장 잘 압축되는 512 개의 단어로되어 있습니다). 그런 다음 b첫 번째 입력과 y두 번째 입력으로 대체됩니다 .


내가 기억할 수있는 가장 무작위적인 제한 중 하나에 대한 +2 인터넷 포인트
단순한

아니 @GregMartin 랜덤. 나는 SOGL 말을하지 않지만, 두 개의 교체를 시퀀싱 할 때 나는 'N'에서 같은 제한 결국 y -> woodn -> chuck. 존엄 포인트의 10 분의 1도 여기에 해당합니다.
Khuldraeseth na'Barya

나는이 질문의 주된 정신은 해결책을 허용하는 것에 대해 개방적이라고 생각합니다 ... 입력에서 실제 문자를 허용하지 않는 것이 약간 스케치 적이라는 것을 따를 수 있습니다. 어쨌든 : 왜 b첫 번째 입력에서 허용되지 않고 e두 번째 입력에서 괜찮습니까?
Greg Martin

으악 @GregMartin, 나는 1 입력이 포함 할 수 있다고하는 의미 e가 2 차 교체에 제 2 회 입력으로 대체 될 것 그렇지 않으면 같은
dzaima

입력에서 알파를 금지하지 않기 위해 대체 대상이 알파가 아닌 것이 불가능합니까?
WGroleau

5

R , 90 77 76 바이트

Sumner 덕분에 -13 감사합니다
Giuseppe 덕분에 -1 감사합니다

function(x,y,`[`=gsub)2[y,1[x,"How much 1 would a 12 2 if a 12 could 2 1?"]]

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


2
gsub대신 -13 바이트에 대해 더블 을 수행 할 수 있습니다. tio.run/…
Sumner18

감사합니다. 예, gsub확실히 더 의미가 있습니다.
Robert S.

사용 pryr하고 싶다고 생각 하면 73까지 줄일 수 있습니다 .
Khuldraeseth na'Barya

4
입력 x에 문자가 포함되지 않는다고 가정하도록 지정해야 합니다 2. 이 경우 실패합니다 ( TIO ).
로빈 라이더



4

자바 스크립트 (V8) , 72 바이트

(a,b)=>['How much',a,'would a',c=a+b,b,'if a',c,'could',b,a+'?'].join` `

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

변수 할당은 실제로 0 바이트를 절약하지만, 이것을 약간 독특하게 만들기 위해 유지한다고 생각했습니다 .


그러나 하나의 큰 템플릿 문자열은 1 자 더 짧습니다. 온라인으로 사용해보십시오! .
manatwork

@manatwork 나는 이것을 시도했지만 실수로 여분의 공간을 포함시켰다 : P 감사합니다!
IronFlare 18:32에

4

ZX 스펙트럼 기본, 87 바이트

완전성, 간단한 구현을 위해 :

INPUT a$,b$: PRINT "How much ";a$;" would a ";a$;b$;"  ";b$;" if a ";a$;b$;" could ";b$;" ";a$;"?"

IF키워드 (1 바이트)를 사용하면 키워드가 3 바이트 씩 줄어들지 만 "동일한 대문자 사용"조건이 깨집니다.

INPUT a$,b$: PRINT "How much ";a$;" would a ";a$;b$;"  ";b$;" IF a ";a$;b$;" could ";b$;" ";a$;"?"

약간 약한 버전도 보여주는 것이 좋습니다. :)
Greg Martin

2
오 스펙시! 다시 젊어지기 위해
chx

4

, 75 바이트

|a,b|print!("How much {} would a {0}{} {1} if a {0}{1} could {1} {0}?",a,b)

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

이 트릭을 사용 하면 서식을 지정할 항목 당 한 번만 서식 색인을 건너 뛸 수 있습니다.

또한 print!()문자열을 사용 format!()하여 반환 하는 것보다 1 바이트가 짧기 때문에을 사용하십시오.


4

05AB1E , 37 35 31 30 바이트

“Howƒ×1€Þ a ÿ0€¬ a ÿƒˆ01?“T$ú‡

@Grimy 덕분에 -5 바이트 .

wood첫 번째 값과 chuck두 번째 로 두 항목의 목록을 가져옵니다 .

온라인으로 시도 하거나 모든 테스트 사례를 확인하십시오 .

설명:

Howƒ×1€Þ a ÿ0€¬ a ÿƒˆ01?“
      # Push dictionary string "How much1 would a ÿ0 if a ÿ could01?",
      # where the `ÿ` are automatically filled with the (implicit) input-list,
      # implicitly joined together to a single string
      #  i.e. ["wood","chuck"] → "How much1 would a woodchuck0 if a woodchuck could01?"
T     # Push 10
 $    # Push the input-list and 1
  ù   # Pad the strings in the input-list with this 1 amount of leading spaces
      #  ["wood","chuck"] → [" wood"," chuck"]
     # Transliterate the 10 ([1,0]) to these strings in the sentence
      #  → "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
      # (after which the result is output implicitly)

내이 05AB1E 팁을 참조하십시오 (섹션 어떻게 사전을 사용하는 방법을? ) 이유를 이해하는 “Howƒ×1€Þ a ÿ0€¬ a ÿƒˆ01?“것입니다 "How much1 would a ÿ0 if a ÿ could01?".




1
트윗 담아 가기 나는 둘 다 정말 좋아합니다. 추가 바이트를 절약하기 위해 이와 같은 것을 사용하는 독창적 인 아이디어 덕분입니다.
Kevin Cruijssen

1
대안 30 . 나는 29를 찾지 못했습니다. 귀하의 설명은 현재 안전합니다.)
Grimmy

4

애플 소프트 베이직, 77 76 바이트

1INPUTA$,B$:?"How much "A$" would a "A$B$" "B$" if a "A$B$" could "B$" "A$"?

위의 내용은 올바른 기본 형식으로 보이지 않을 수 있지만 Applesoft는 PRINT명령문을 사용할 때 몇 가지 단축키를 허용 합니다.

  • 명세서를 입력 할 때 ?대신 사용PRINT
  • 연결 문자 ( ;또는 +)는 생략 할 수 있습니다.
  • 명령문이 따옴표로 묶인 문자열로 끝나면 마지막 따옴표를 생략 할 수 있습니다. 감사합니다. Mark !

줄 번호가 필요하거나 그 INPUT진술로 인해?ILLEGAL DIRECT ERROR


1
후행 인용 부호를 생략 할 수 있습니까? Applesoft Basic은 Microsoft Basic 파생 상품이며 많은 버전의 Microsoft Basic에서는 줄을 끝내면 문자열에서 닫는 따옴표를 생략 할 수 있습니다.
마크

@Mark, 팁 주셔서 감사합니다!

4

33 , 78 바이트

"How much "p1btpt" would a "ptpz2btp" "ptbtp" if a "ptpbtp" could "ptbtp" "ptp

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

입력을 명령 행 인수로 사용합니다.

보너스 : 91 바이트

"How much "p1bztp" would a "p1bztp2bztp" "p2bztp" if a "p1bztp2bztp" could "p2bztp" "p1bztp

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

주어진 입력 1bztp과 출력을 닮은 출력2bztp


이것을 크게 소리내어 말 했으므로 이제 모니터의 모든 침을 청소해야합니다.
BradC



3

VBA, 107 바이트

Function q(a,b)
b=b&" "
c="ould "
q="How much "&a&" w"&c&"a "&a&b&b&"if a "&a&b&"c"&c&b&a&"?"
End Function

VBScript로도 실행해야하는데 두 가지 단축키를 사용했습니다. "반복"이 반복되고 추가 공간없이 "척"이 표시되지 않습니다.


즉시 창 기능으로 변환하여 이것을 75 바이트로 줄일 수 있습니다 a=[A1]:b=[B1&" "]:o="ould ":?"How much "a" w"o"a "a b b"if a "a b"c"o b a"?. [A1]및 에서 입력을받습니다 [B1]. 우리는이 VBA에서 골프 팁 당신이로 살펴 보는 것이 좋습니다.
Taylor Scott

그럼 당신은 입력 명명 된 범위를 취할 수 [A][B]입력은 73에 아래로 데려 나는 아주, 당신은 생각을 통해가는 방법을 이해하는 자신 만의 대답을 추가 부담하지 않습니다.
user3819867

1
즉 불행하게도 STDIN과 STDOUT이 엑셀 VBA에 대해 정의하는 방법에 간다 - 당신은 activesheet에 어떤 이름이 범위를 사용할 수 있지만 커뮤니티에서 이전 decison 당 명명 된 범위를 사용하는 것은 허용되지 않습니다
테일러 스콧

3

C 번호 , 165 (148) 133 바이트

class P{static void Main(string[]a){System.Console.Write("How much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?\n",a[0],a[1]);}}

보간 된 문자열에 대해 알려 주신 Andrew Baumher 에게 감사드립니다 !!
편집 : 풀 클래스가 추가되었습니다.
편집 : Kenneth K 에게
감사를 표 합니다. 편집 : 보간 문자열을 사용하는 것이 실제로이 시나리오에서 더 길다는 것을 알려주는 Andrew에게 다시 감사드립니다.


최신 C #의 '$'( 보간 된 문자열 )을 사용하면 {0}을 {a [0]}으로 바꾸거나 배열 대신 두 개의 변수를 사용하여 a와 b 만 사용하면 몇 바이트를 절약 할 수 있습니다. 천둥을 훔치지 않기 위해, 다른 버전의 C #으로 추가하겠습니다
Andrew Baumher

와우는 몰랐어요! 정보 주셔서 감사합니다
canttalkjustcode

2
@canttalkjustcode는 일반적으로 기능이 허용됩니다. C #의 경우 여기에는 람다가 포함됩니다.a=>System.Console.WriteLine($"How much {a[0]} would a {a[0]}{a[1]} {a[1]} if a {a[0]}{a[1]} could {a[1]} {a[0]}?")
JAD

이것은 사실이지만 C # Interactive에서만 람다 식을 사용할 수 있습니다. 전체 C #에서는 전체 lamda 문이 필요합니다. 다음의 스 니펫에 표시된 것처럼 간단한 void 문이 더 빠릅니다.
canttalkjustcode

void M(string[]a){System.Console.WriteLine($"How much {a[0]} would a {a[0]}{a[1]} {a[1]} if a {a[0]}{a[1]} could {a[1]} {a[0]}?");} System.Func<string>M=a=>System.Console.WriteLine($"How much {a[0]} would a {a[0]}{a[1]} {a[1]} if a {a[0]}{a[1]} could {a[1]} {a[0]}?"); System.Action<string>M=a=>System.Console.WriteLine($"How much {a[0]} would a {a[0]}{a[1]} {a[1]} if a {a[0]}{a[1]} could {a[1]} {a[0]}?");
canttalkjustcode



2

파이썬 3 , 80 바이트

lambda n:'How much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?'.format(*n)

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

로마에있을 때는 str 형식을 사용하십시오.

오징어의 트릭을 사용하여 편집했습니다 .


3
이것이 유효하지 않습니까? 함수 또는 프로그램이 아닌 스 니펫입니다.
복원 Monica Monica

네; 그 lambda n:전에를 필요로 하고를 삭제할 수 있습니다 print().
wizzwizz4

How much ...대신 인쇄하도록 코드를 변경해야합니다 how much ....
ruohola

3
익명 함수를로 정의하면 충분합니다 'how much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?'.format.
xnor

@xnor 아직도 아주 새로운 데, 그때 TIO는 어떤 모습일까요? 나는 인수를 전달할 수있는 방법이 없다면 실행할 수 있다고 생각합니다.
Tryer

2

C # (Visual C # 대화식 컴파일러) , 66 65 바이트

x=>y=>$"How much {x} would a {x+y} {y} if a {x+y} could {y} {x}?"

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

C #을 제외한 다른 모든 사람과 동일합니다. (a, b) => c 대신에 currying strat a => b => c를 사용하여 -1 바이트


에서 함수 서명을 변경 Func<string,string,string>하는 Func<string,Func<string,string>>변경 (x,y)x=>y=>
무지의 실시 예

싸구려 전술처럼 보이지만 메타 토론은 그것이 공정한 게임이라고 말합니다. 감사.
앤드류 Baumher

2

R , 95 바이트

function(a,b)cat("How much ",a," would a ",a,b," ",b," if a ",a,b," could ",b," ",a,"?",sep='')

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


2
사이트에 오신 것을 환영합니다! TIO 링크가 잘못된 코드로 연결되어 있습니까? 또한, 지금까지 내가 말할 수있는, 당신은 변수에있을 입력 가정 한 ab우리에서 허용하지 않는, 기본 입 / 출력 규칙
coinheringaahing 케어 드

댓글 주셔서 감사합니다 @cairdcoinheringaahing. 나는 그것을 기능 형태로 다시 썼다. 지금 규칙을 준수하기를 바란다.
minhsphuc8


1

APL (Dyalog Unicode) , 56 59 바이트

{∊'How much '' would a '⍺⍵' '' if a '⍺⍵' could '' ''?'}

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

아주 간단한 dfn. 단일 문자열 대신 문자열 배열을 반환하도록 허용 된 경우 잘라내어 바이트를 저장 합니다.

물음표 추가를 잊었 기 때문에 3 바이트가 추가되었습니다.


그리스 문자를 1 바이트로 계산 했습니까?
Tomáš Zato 13:04에

@ TomášZato 예. Dyalog APL의 글리프는 여기서 APL 답변의 표준 인 Adám의 단일 바이트 문자 시트 를 사용하여 단일 바이트로 표현할 수 있습니다 .
J. Sallé


1

젤리 , 41 37 바이트

⁾be,y“Ø[gœıJ9°m.OṚuHlh3Ƥ⁾$ɲ0øḲʂṇHẎṆȥ»

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

문자열 쌍을 인수로 사용하여 처리 된 문자열을 인쇄하는 전체 프로그램입니다. 모나 딕 링크 F는 끝에 a 를 추가하여 형성 할 수 있습니다 (이 점을 지적한 @JonathanAllan에게 감사드립니다).

@dzaima의 SOGL 답변 에서 영감을 얻은 자리 표시 자로 "b"와 "e"를 사용하도록 전환했습니다 . 이것은 첫 번째 단어가 문자 e를 포함 할 수 없음을 의미합니다.


@JonathanAllan이 그렇습니다! 감사.
Nick Kennedy


1

넷째 (gforth) 116 바이트

: x 2over type ; : y 2dup type ; : f ." How much "x ."  would a "x y ."  "y ."  if a "x y ."  could "y ."  "x ." ?";

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

코드 설명

\ x = output the first word
: x               \ start a new word definition
  2over type      \ copy the "first" word to the top of the stack and print it
;                 \ end word definition

\ y = output the second word
: y               \ start a new word definition
  2dup type       \ copy the "second" word to the top of the stack and print it
;                 \ end word definition

: f               \ start a new word definition
  ." How much "x  \ print "How much " followed by the first word   
  ."  would a "x  \ print " would a " followed by the first word
  y ."  if a "x   \ print the second word followed by " if a " and then the first word
  y ."  could "y  \ print the second word, then " could " then the second word again
  ."  "x ." ?"    \ print a space followed by the first word, followed by "?"
;                 \ end word definition

1

루아 , 82 바이트

a,b=...print((('How much x would a xy y if a xy could y x?'):gsub('.',{x=a,y=b})))

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

전체 프로그램, 인수로 입력하십시오.

여기서 특별한 것은 없습니다. 더 짧은 버전이 있기를 바라지 만 언뜻보기에 이것을 단축시키는 확실한 방법은 없습니다.


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