Bir kodlayıcı golf kodunu bulabilseydi kodlayıcı golf ne kadar kod eder?


55

Girdi olarak iki kelimeyi alan ve popüler İngiliz dili twisterının türevlerini çıkaran bir işlev veya program yazın.

Çıktı ilk sözcüğü dört kez kullanacak

  • woodBir woodaynanın aynası ne kadar woodkıkırdayabilirdi wood?

ve ikinci kelime dört kez

  • Bir odun chuck chuckodun chuckolabilirse chuckodun ne kadar odun?

Çıktının geri kalanı herhangi bir giriş için aynıdır.

  • How muchahşap would adağ sıçanı ayna if adağ sıçanı couldayna ahşap?

Giriş ve çıkış, dilinizin makul olarak metin dizeleriyle ilgili olarak tanıdığı herhangi bir biçimde olabilir. Çıktı, büyük harf, boşluk ve bunların eksikliği ve bitiş soru işareti dahil tam olarak belirtilen formatta olmalıdır. İsteğe bağlı bir izleyen newline kabul edilebilir.

İdeal olarak kodunuz, yazdırılabilir ASCII karakterleri içeren girişleri işleyecektir. Bununla birlikte, girdilerin yazdırılabilir ASCII'nin makul altkümeleri ile sınırlandırılmasına izin verilir; Sadece cevabınızı belirtiniz. Daha büyük karakter kümelerinin ele alınması elbette iyidir.

Örnek giriş-çıkış çiftleri:

"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?"

Bu , yani en az bayt kazanır. Diğer dillerden daha az byte yapabilse bile, cevaplar tüm dillerde açıktır.

( Bu rijit düzenden daha iyi bir giriş çifti kullanan bu memeden ilham alınmıştır ....)


2
İki kelimenin iki ayrı kelime olacağını varsayabilir miyiz ?
Jonathan Allan,

4
... Sanırım "", ""hayır demektir: p
Jonathan Allan,

1
@ Chronocidal Sizi hayal kırıklığına uğratmaya dayanamıyorum ....
Greg Martin

6
İki. İki kodu golf oynardı.
user2357112

1
Aw, bunun diğer kodda bazı basit golf dönüşümleri yapabilecek kısa bir program olacağını umuyordum.
aschepler

Yanıtlar:


40

Python 3 , 70 67 bayt

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

Çevrimiçi deneyin!

Yani, ayakkabı uyuyorsa ..

Yazım hatası yakalamak için yapılan çalışmalara teşekkürler

Mükemmel -3 baytlık fikir için Remco Haszing'e teşekkürler

Bunun hala geçerli bir sunum olacağı varsayımından kaçıyorum (çünkü adamım, denememek çok güzel). Eğer OP bunun kabul edilebilir olup olmadığını netleştirebilseydi (kendi başıma bir işlev yazmadım çünkü ), bu takdir edilecektir.

Güncelleme: Nimet aldı, hepsi iyi :)


Önceki versiyon:

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

2
Belki alakasızdır, ancak otomatik format dizesi 3.6
M.Herzkamp

3
@ M.Herzkamp Yani?
ruohola

16
@ ruohola M.Herzkamp'ın bu cevabın başlığının "Python 3" yerine "Python 3.6" olması gerektiğini söylemeye çalıştığını düşünüyorum.
Bay Lister

8
Hatta daha kısa ve (67 bayt) Python 2 uyumlu: "How much {0} would a {0}{1} {1} if a {1}{0} could {1} {0}?".format. Bu, biçimlendirilmemiş dizgeye bağlı bir işlev döndürür.
Remco Haszing

1
Python uzmanı değilim, ancak print("How much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?".format("wood","chuck"))istenen çıktıyı oluşturduğundan, kabul etmemek için bir neden göremiyorum :)
Greg Martin

25

T-SQL, 82 bayt

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

Önceden var olan tablodan t , IO kurallarımıza göre w ve c sütunlarıyla alınır .

Bir bayt daha uzun, ama nedense biraz daha hoş:

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

Bu sürüm girişlerin bir alt kümesi çalışır yok rakamı dahil 2ilk kelime w .

Çünkü SQL'im var, tüm örnekleri masaya önceden yükleyebilir ve hepsini bir kerede çalıştırabilirim:

görüntü tanımını buraya girin


2
+1000000 megatrain için sanal trenler
Greg Martin

5
"W" ve "c" nin sırasıyla "ahşap" ve "chuck"
anlamına geldiğini farz ediyorum

Bu, Oracle * 'da SQL * Plus'tan (yani tablo yok) çağrıldığı gibi 67 baytta yapılabilir:select'How much &1 would a &1&2 &2 if a &1&2 could &2 &1?'from dual
Ben

16

Bash , 50 bayt

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

Çevrimiçi deneyin!

Aşağıdaki yorumlardan yardım nedeniyle -5 bayt.




1
Nahuel'in golfünü uyarlarken gereksiz bir ters eğik çizgi eklediniz. İşte 53. (Gerçekten 50 olmasına rağmen, hiçbir şey sizi ilk kelimeyi 2 dolar ve ikinci kelimeyi 1 dolar
almanıza engellemez

2
@Grimy: Parametrelerin tersine çevrilmesine izin veren orijinal posterin mücadelesine dair yorumu görüyorum. Yanıtı 50 baytlık mükemmel yanıtla güncelliyorum. Teşekkürler!
Ağustos’ta

1
@ roblogic: Ters eğik çizgiler, boşluklar üzerinde kelimelerin bölünmesini önlemek için boşlukları belirtir ve kıvrımlı kaşlı ayraçlar, iki sözcük oluşturacak şekilde iki kez genişletilir; Her dize sonuna eklenir. Bölme kelimesini görselleştirmek için köşeli parantez eklemek: “[a {bc, de} f]” iki kelime olur: “[abcf] [adef]”. Böylece “[{, $ 1 \ eğer} \ a \ $ 2 $ 1]]” “[olur \ a \ $ 2 $ 1]] [$ 1 \ \ \ \ \ \ $ \ $ 1 $]] olur
04:11

15

Stax , 33 31 30 29 bayt

Özyinelemeli -1 sayesinde !

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

Koşun ve staxlang.xyz de hata ayıklayın!

Her bileşeni ters sırayla yığına doğru itin, sonra hepsini boşluklarla birleştirin.

Ambalajsız (35 bayt) ve açıklama:

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

`` Arasındaki her şey sıkıştırılmış dize değişmezdir. Bu virgül hayati önem taşıyor. Giriş yığından en son okuduğumda, çıktımın sonunda fazladan bir "tıkanma" yaşanmasını önlemek için gözetlemek yerine açmam gerekiyor.

Birkaç test durumu için her iki girişi de aynı satıra koyduğumu ve bunların ters sırada olduğunu fark edeceksiniz. Bu, boş dizeleri veya boşluk dizelerini girdi olarak almak için gereklidir.

Giriş kısıtlamaları ile 27 26 bayt

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

Koşun ve staxlang.xyz de hata ayıklayın!

@ Dzaima'nın SOGL'sinde olduğu gibi , ilk girdi küçük harf y ise onu kullanmaz. Dize basarsa "a ile yb'nin ne kadar b yapması gerekir?", Ardından bir çift değiştirme yapar.


"Birkaç test durumu için her iki girişi de aynı satıra koyduğumu ve bunların ters sırada olduğunu fark edeceksiniz. Bu, boş dizeleri veya boşluk dizelerini girdi olarak almak için gereklidir." Giriş ayırıcı kullanmazsanız , giriş bozulmamış , dizeleri boş kalacaktır. Birden fazla test senaryosunun gösterilmesi biraz garip geliyor.
özyinelemeli

1
Ek olarak, ,31 baytlık çözümünüzdeki liderin kaldırılabileceği görülüyor . Aşağıdaki +dolaylı olarak giriş yığınından çıkar, dolayısıyla davranış aynıdır.
özyinelemeli

13

JavaScript, 70 bayt

Sıkıcı!

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

Çevrimiçi deneyin!

Hafifçe daha az sıkıcı!

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

Çevrimiçi deneyin!


İlk örnekte olduğu gibi bir köri işlevi çıkarmanıza izin veriliyor mu?
Feathercrown

@ Feathercrown, bir fonksiyon çıktısı almıyorum, TIO'da görebileceğiniz gibi her ikisini de (örneğin, ) arıyorumf(a)(b) . Fakat evet, bizim kavrulmuş fonksiyonlara izin vermek için fikir birliğimiz var ve bence bir fonksiyonun gerçekten geri alınmasına izin verilmesi konusunda bir fikir birliğine yakındık.
Shaggy

Çıktı ile kod değerlendirildiğinde bir fonksiyon döndürür; hiçbir arama, verilen bayt için sayılan kodda değildir. Sadece körleşmenin iyi olduğundan emin olmak için kontrol ediyordum, çünkü yalnızca hiç iyileştirilmemiş fonksiyonların geri döndüğünü gördüm.
Feathercrown

6

SOGL , 32 30 bayt

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

Burada dene!

İlk girdi, ymakul bir ASCII alt kümesi (ve unicode) bırakmış gibi görünen harfi içeremez .

½ouiīZģ9Ο|ΧyΚ⅞ō÷Jeq(‚7‘sıkıştırılmış bir dizedir "how much b would a by y if a by could y b?"(seçilen karakterler böylece istenen sözcüklerin tümü, daha iyi sıkıştırılan sözlüğün ilk 512 kelimesindedir), ardından b1. giriş ve y2. ile değiştirilir.


Hatırlayabildiğim en rastgele kısıtlamalardan biri için +2 internet noktaları (daha kısa çözümünüzde)
Greg Martin

@GregMartin O kadar rasgele değil . Ben SOGL bilmeyen, ancak iki yedek sıralanması zaman 'n' aynı kısıtlama ile sona erdi y -> woodve n -> chuck. Bir Dignity Point'in onda biri, burada da böyle söylüyor.
Khuldraeseth na'Barya

Bence bu sorunun asıl ruhu, çözümlere izin verme konusunda açık olmaktır ... ancak bir kenara bir girdideki gerçek bir mektuba izin vermemenin biraz kabataslak olduğunu düşünebilirim. Yine de: neden bilk girişte izin verilmiyor e, ikinci girişte neden sorun yok ?
Greg Martin,

@GregMartin boğuşuyor, demek istediğim, 1. girişin içeremeyeceğini esöylemek istedim, aksi halde 2. değiştirmedeki 2. girişle değiştirilecekti
dzaima

Girişten alfa yasaklama zorunluluğunu önlemek için yerine koyma hedefinin alfa olmaması mümkün değil mi?
WGroleau

5

R , 90 77 76 bayt

-13 Sumner18
-1 sayesinde Giuseppe sayesinde

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

Çevrimiçi deneyin!


2
gsubBunun yerine -13 bayt için bir çift yapabilir . tio.run/…
Sumner18

@ Sumner18 Teşekkürler. Evet, gsubkesinlikle daha mantıklı.
Robert S.,

Kullandığınız gibi hissedersen pryr, sen 73'e bölge var elimizde .
Khuldraeseth na'Barya

4
Girişin xkarakteri içermediğini varsaydığınızı belirtmelisiniz 2; bu durumda başarısız olur ( TIO ).
Robin Ryder




4

ZX Spectrum Basic, 87 bayt

Sadece bütünlük için, basit uygulama:

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

IFAnahtar sözcüğü (1 bayt) kullanmak, 3 bayt kadar düşürür, ancak "aynı büyük harf" koşulunu bozar:

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

Çok hileli sürümleri de göstermek güzel: :)
Greg Martin

2
Ah, Speccy! Tekrar genç olmak ...
chx

4

Pas , 75 bayt

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

Çevrimiçi deneyin!

Bu hileyi kullanarak , biçimlendirmek için öğe başına bir kez biçimlendirme dizinini atlayalım.

Ayrıca print!(), bir dize oluşturup format!()döndürmekten bir bayt daha kısa olduğu için de kullanıyorum .


4

05AB1E , 37 35 31 30 bayt

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

-Grimy sayesinde -5 bayt .

İki öğenin bir listesini alır: woodbirinci değer ve chuckikinci olarak.

Çevrimiçi deneyin veya tüm test durumlarını doğrulayın .

Açıklama:

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)

Bunun neden “Howƒ×1€Þ a ÿ0€¬ a ÿƒˆ01?“olduğunu anlamak için bu 05AB1E ipucumun (bölüm sözlük nasıl kullanılır? )"How much1 would a ÿ0 if a ÿ could01?" .




1
@Grimy Çok güzel! İkisinden de gerçekten hoşlanıyorum. Ekstra baytı kurtarmak için bu gibi kullanımı ustaca bir fikir , teşekkürler.
Kevin Cruijssen


4

Applesoft BASIC, 77 76 bayt

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

Yukarıdakiler uygun BASIC gibi görünmeyebilir, ancak Applesoft PRINTifadeyi kullanırken birkaç kısayol için izin verir :

  • İfadeye girerken ?yerine kullanımıPRINT
  • Birleştirme karakterleri (ya ;da +) ihmal edilebilir
  • Eğer ifade alıntılanan bir dizgede bitiyorsa, son alıntı ihmal edilebilir. Teşekkürler, Mark !

Satır numarası gerekli, aksi halde INPUTdeyim bir?ILLEGAL DIRECT ERROR


1
Sondaki tırnak işaretini atlayabilir misin? Applesoft Basic, bir Microsoft Basic türevidir ve Microsoft Basic'in birçok sürümü, satırı sonlandırırsa bir ipte kapanış teklifini atlamanıza izin verir.
Mark

@Mark, bahşiş için teşekkürler!
lee

4

33 , 78 bayt

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

Çevrimiçi deneyin!

Girişi komut satırı argümanları olarak alır.

Bonus: 91 bayt

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

Çevrimiçi deneyin!

Girdi verildiğinde kendisine benzeyen çıktı verir 1bztpve2bztp


Bunu yüksek sesle söyledim, şimdi monitörümdeki tüm tükürükleri temizlemem gerekiyor.
BradC


3

PowerShell , 65 bayt

param($a,$b)"How much $a would a $a$b $b if a $a$b could $b $a`?"

Çevrimiçi deneyin!

Unutulmaması gereken tek şey, bir PowerShell tanımlayıcısının geçerli parçaları olabileceği için soru işaretinden kaçmanız gerektiğidir.


3

VBA, 107 bayt

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 olarak da çalışmalıyım, iki kısayol kullandım: "ould" tekrarlanıyor ve "chuck" hiçbir zaman ek bir boşluk olmadan görünmüyor.


Hemen pencere işlevine dönüştürerek bunu 75 bayta indirebilirsin a=[A1]:b=[B1&" "]:o="ould ":?"How much "a" w"o"a "a b b"if a "a b"c"o b a"?. Girdi alır [A1]ve [B1]. VBA'da golf oynamanız için bir göz atmayı düşündüğünüz ipuçlarımız var .
Taylor Scott,

O zaman aralıkları girilen [A]ve [B]73'e düşüren girdi olarak girebilirsiniz. Sizinkinin nasıl geçtiğini tam olarak anlamadım, kendi cevabınızı eklemek için çekinmeyin.
user3819867

1
Bu ne yazık ki, STDIN ve STDOUT'un Excel VBA için nasıl tanımlandığına aykırıdır - etkin sayfadaki adsız herhangi bir aralığı kullanabilirsiniz, ancak topluluk tarafından daha önceki bir karar için belirtilen aralıkları kullanmanıza izin verilmez
Taylor Scott

3

C # , 165 148 133 bayt

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]);}}

Bana enterpolasyonlu dizeleri anlattığın için teşekkürler Andrew Baumher !!
EDIT: Şimdi tam sınıf eklendi
EDIT: Kenneth K.'yi kısaltmak için bana birkaç ipucu verdiği için
teşekkürler EDIT: Enterpolasyonlu dize kullanmanın gerçekte bu senaryoda daha uzun olduğunu söylediğin için tekrar Andrew'e teşekkürler.


Modern C # 's' $ '( enterpolasyonlu dizeler ) kullanarak, bir dizi yerine iki değişken alarak {0}' ı {a [0]} ile değiştirerek veya daha iyisi ile birkaç byte kaydedebilirsiniz, böylece sadece a ve b kullanabilirsiniz. Gök
gürültünüzü çalmayacak, konuşacak olursak

Vay bunu bilmiyordu! Bilgi için teşekkürler
canttalkjustcode

2
@canttalkjustcode genellikle, fonksiyonlar kabul edilir. C # için bu lambdaları içerir: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

Bu doğrudur, ancak sadece C # Interactive dilinde böyle lambda ifadeleri kullanabilirsiniz. Tam C # ile tam bir lamda deyimine ihtiyacınız var. Basit bir boşluk ifadesi aşağıdaki
kod

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

Jöle , 39 bayt

ŒPKŒP“µkþ¿µ‘ị“þ>Æƈ)taJṖ;ạʂ\4S%dñl»Ỵ¤ż”?

İki dizenin bir listesini kabul eden tam bir program.

Çevrimiçi deneyin!

... Veya (ayrıca iki dizenin bir listesini kabul eden tam bir program)

⁽4ṀDBịs€2ṭ€€⁶“þ>Æƈ)taJṖ;ạʂ\4S%dñl»Ỵ¤ż”?

Çevrimiçi deneyin!


2

Python 3 , 80 bayt

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

Çevrimiçi deneyin!

Roma'dayken str biçimini kullanın.

Kalamarın numarasıyla düzenlendi .


3
Bu geçersiz olmaz mıydı? Bu bir snippet - bir işlev veya program değil, doğru mu?
Monica’yı

Evet; lambda n:ondan önce bir ihtiyacı var ve bırakabilirsiniz print().
wizzwizz4

Yazdırma işlemi yapmak için kodunu değiştirmek gerekir How much ...yerine how much ....
ruohola

3
Sadece isimsiz bir işlevi tanımlamak yeterlidir 'how much {0} would a {0}{1} {1} if a {0}{1} could {1} {0}?'.format.
xnor

@xnor Yine de oldukça yeni, TIO bunun için neye benziyordu? Bir tartışmaya girmenin bir yolu olmadan çalıştırılabilir olacağını düşünüyorum.
Tryer

2

C # (Visual C # Etkileşimli Derleyici) , 66 65 bayt

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

Çevrimiçi deneyin!

C # hariç herkesle aynı. Körükleme kullanarak -1 bayt (a, b) => c yerine a => b => c


Dan işlev imzayı değiştirme Func<string,string,string>için Func<string,Func<string,string>>ve değiştirmek (x,y)içinx=>y=>
Cehalet Edilen

Ucuz bir taktik gibi görünüyor, ancak meta tartışma bunun adil bir oyun olduğunu söylüyor, öyle olabilir. Teşekkürler.
Andrew Baumher

2

R , 95 bayt

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

Çevrimiçi deneyin!


2
Siteye Hoşgeldiniz! TIO bağlantınız yanlış koda bağlı görünüyor mu? Ek olarak, söyleyebileceğim kadarıyla, girdilerin değişkenlerde olduğunu varsaydınız ave bbu, Varsayılan Girdi / Çıktı kurallarımıza
35'teki caird coinheringaahing

Teşekkürler @cairdcoinheringaahing Yorumunuz için. İşlev biçiminde yeniden yazdım, şimdi kurallara uymasını umuyorum.
minhsphuc12


1

APL (Dyalog Unicode) , 56 59 bayt

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

Çevrimiçi deneyin!

Oldukça basit dfn. Keserek bir bayt kazandırırTek bir dize yerine bir dizge dizisi döndürmemize izin verilirse .

Soru işareti eklemeyi unuttuğum için 3 bayt eklendi.


Yunanca harfleri bir bayt olarak saydın mı?
Tomáš Zato

@ TomášZato evet. Dyalog APL'nin glifleri, burada APL cevapları için standart olan Adám'ın Tek Bayt Karakter Sayfasını kullanarak tek bir baytta temsil edilebilir .
J. Sallé


1

Jöle , 41 37 bayt

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

Çevrimiçi deneyin!

Argüman olarak bir çift dizge alarak tam bir program Monadik bir link ekleyerek oluşturulabilir.F uca son (bunu belirtmek için @ JonathanAllan sayesinde).

Şimdi “b” ve “e” yi yer tutucu olarak kullanmaya başladım , @ dzaima'nın SOGL cevabından ilham aldım, bu yüzden bunu da unutmayalım! Bu, ilk kelimenin e harfini içeremediği anlamına gelir.


@ JonathanAllan oldukça doğru! Teşekkürler.
Nick Kennedy


1

İleri (gforth) , 116 bayt

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

Çevrimiçi deneyin!

Kod Açıklaması

\ 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

Lua , 82 bayt

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

Çevrimiçi deneyin!

Tam program, argüman olarak girdi almak.

Burada özel bir şey yok. Umarım daha kısa bir sürüm vardır, ancak ilk bakışta bunu kısaltmanın hiçbir yolu yoktur.


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.