Alfabe Şarkısı Oluştur


55

Amacınız aşağıdaki formda bir metin olarak bir alfabe şarkısı oluşturmaktır (sırayla):

A is for <word starting with A>
B is for <word starting with B>
C is for <word starting with C>
...
Z is for <word starting with Z>

Örnek çıktı:

A is for Apple
B is for Banana
C is for Carrot
D is for Door
E is for Elephant
F is for Frog
G is for Goat
H is for Hat
I is for Icicle
J is for Jelly
K is for Kangaroo
L is for Lovely
M is for Mom
N is for Never
O is for Open
P is for Paste
Q is for Queen
R is for Rice
S is for Star
T is for Test
U is for Underneath
V is for Very
W is for Water
X is for X-ray
Y is for Yellow
Z is for Zipper

Kurallar:

  • Şarkının her "harfi" kendi çizgisine sahip, bu yüzden 26 satır var ve takip eden bir satır beslemesi var.

  • Çıktı büyük / küçük harf duyarlıdır:

    • Her satırın başındaki harfin büyük harfle yazılması gerekir.
    • is for küçük harf.
    • Seçilen kelimenin büyük harfleştirilmesine gerek yoktur, ancak olabilir. Tüm çizgiler tutarlı olmalıdır.
  • Her satır için seçilen kelime size bağlıdır, ancak en az 3 harften oluşan geçerli bir İngilizce kelime olmalıdır ve bir birleşim (gibi andveya but), birleştirme / ünlem işareti (gibi heyveya yay), kısaltma (gibi XLS) veya isim (gibi Jon).

  • Kimsenin daha kısa bulacağından şüphem olsa da, tek bir kelime yerine bir cümle kullanmayı kabul ediyorum. Öyleyse, herhangi bir sebepten S is for Something smells fishy...daha kısa ise, devam edin.

  • Programınızın çıktısını cevabınıza veya en azından kullandığınız kelime listesine ekleyin (kodunuzu çevrimiçi çalıştırmak için bir bağlantı varsa, çıktının tamamını görmemize gerek yoktur).

  • En kısa kod kazanır


Bu zorluk bu videodan ilham aldı .


Argo, uygun sözlükte listelense bile izin verilmediğini tahmin ediyorum. (örneğin, " Dışarıya doğru gittiğini anladığı zaman bir kez daha işe yaradı !")
Jonathan Allan

1
Bazı cevaplar göz önüne alındığında, Barenaked Ladies'in bu şarkısı alakalı görünüyor.
AdmBorkBork

1
@ JonathanAllan Argo yok. Sözlükler teknik olarak kelime olmayan pek çok şey içerir. Kısaltmalar bir, argo başka bir şeydir.
mbomb007

4
Bu, aynı harfle biten 3 harfli kelime bulmak için gelişti.
12Me21

1
Harici bir sözlük kullanarak birkaç cevap var. Bu dosyanın boyutunu kodlarına eklemek zorunda kalmazlar mı?
pipo

Yanıtlar:


3

SOGL 0.8.1 , 60 32 bayt

χ3½⌠↓-ζ⁄∞Nη6′⁵‘Z{t",t5~r‘ooKo to

Açıklama:

χ3½⌠↓-ζ⁄∞Nη6′⁵‘                   push "niooaaoasoioaiaaaoiineeaei"
               Z{                 for each letter of the uppercase alphabet
                 t                output the letter in a newline (and disable implicit output)
                  ",t5~r‘o        append " is for "
                          o       append the letter
                           Ko     append the 1st letter of the 1st string (the 2nd letters) and remove it
                              to  append "t"

Bu hemen hemen Jonathan Allan'ın cevabı , fakat bu dile aktarılmış.

Eski versiyon: (SOGL 0.8.2)

Z"sηΒ…@Ν┘$JP6*š∙╬F▓÷Σ⁷4⌠    ⁹{Tīο⁾α⅝½Χ<▼½Ξμ‚‘θ’»∫wGKO",t5~r‘P≥o


Z                                                             push the uppercase alphabet
 "sηΒ…@Ν┘$JP6*š∙╬F▓÷Σ⁷4⌠    ⁹{Tīο⁾α⅝½Χ<▼½Ξμ‚‘                  push the 27 words separated by spaces using the languages english compression (BCD...XYZA)
                                          θ                   split on spaces
                                           ’»∫                repeat 27 times (push 0-based pointer)
                                              w               get the 1-indexed item of the array (so 0 = last, 1 = first, 2 = 2nd,...)
                                               G              put the 1st thing on stack ontop (the alphabet)
                                                K             get the 1st letter and remove it
                                                 O            output it
                                                  ",t5~r‘     push compressed " is for "
                                                         P    append that (and disable last auto-output)
                                                          ≥   put the 1st thing on the stack below everything
                                                           o  append the last thing (the word from the word list)

çıktı:

A is for against
B is for being
C is for could
D is for down
E is for even
F is for first
G is for good
H is for had
I is for into
J is for just
K is for know
L is for little
M is for much
N is for nothing
O is for other
P is for project
Q is for quite
R is for right
S is for said
T is for their
U is for under
V is for very
W is for with
X is for xavier
Y is for you
Z is for zoo

Bu, bu dilin yapabileceği en kısa şey değil, ancak kodlanmış kelimelerin en iyisi olmalıdır.


57

Bash (+ coreutils), 81, 87, 82, 78 bayt

Kelimelerin kaynağı olarak X sayfasının man sayfasını kullanır .

golfed

man xyst\  x|&grep -Po '\b[a-z]{4,} '|sed 's/\(.\)/\u\1 is for &/'|sort -uk1,1

DÜZENLEMELER

  • |&5 baytı kurtarmak için olmayan bir 'xyst' man sayfası + kullanıldı ;
  • Değiştirerek, 4 daha bayt Kaydedilen sed ve sıralama .

Ölçek

%man xyst\  x|&grep -Po '\b[a-z]{4,} '|sed 's/\(.\)/\u\1 is for &/'|sort -uk1,1

A is for also 
B is for build 
C is for computing 
D is for distribution 
E is for entry 
F is for following 
G is for graphics 
H is for hierarchical 
I is for implementations 
J is for just 
K is for keyboard 
L is for listing 
M is for manual 
N is for network 
O is for output 
P is for programs 
Q is for quite 
R is for runs 
S is for system 
T is for transparent 
U is for used 
V is for various 
W is for window 
X is for xyst 
Y is for your 
Z is for zeros 

3
Lsof ve xregs kelimeleri mi? :)
OldBunny2800

1
@ OldBunny2800 şimdi düzeltilmelidir
zeppelin

2
Baktım ve evet, xyst gerçek bir kelimedir. :)
OldBunny2800

3
Çocuklar büyük kelimeler öğrenecek gibi görünüyor. : D
mbomb007

1
@JonathanAllan Maalesef, "x" için man sayfası TIO'da mevcut değil, ancak burada "man man" yerine kullanılan bir link tio.run/nexus/… . Xyst'in hilesi , adam xyst'in stderr'de "xyst için manuel giriş yok" olduğu ve bundan sonra stdout ile birleştirildiği |&için şikayet edebileceğidir.
zeplin

33

Python 2 , 88 77 bayt

- xnor sayesinde -11 bayt (ipi hareket ettirerek ve c65'ten yukarı sayarak zip işleminden kaçının )

c=65
for x in'niooaauusoioaiuaaoiineeaei':print'%c is for %c%st'%(c,c,x);c+=1

Çevrimiçi deneyin!

(Jelly'imin bir limanı 56 baytken cevabını verdi.)

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

4
T ile biten kelimelerin yöntemini seviyorum. Paralel güncellemex yapılarak yineleme kısaltılabilir .
xnor

Her zamanki gibi çok akıllı; Teşekkürler!
Jonathan Allan,

1
Nedir Unt? Bunu hiçbir yerde bulamıyorum
Albert Renshaw

Bunun Untbir kelime olduğunu sanmıyorum , ancak bunu geçerli kılmak ve yalnızca bir bayt daha eklemek için değişmez kelimenizin Utyerine geçebilirsiniz . Boşanma kurallarını düzenleyin 3 harf uzunluğunda olmalı ... hmmmn\0
Albert Renshaw

4
@AlbertRenshaw An, Merriam-Webster'a göre bir Avrupa Köstebeğidir . Bir alternatif, Vikisözlüğe göre ult olabilir, bu sadece bir kısaltma değildir ( ult gibi periyotlarla listelenmiştir ).
Jonathan Allan,

31

Bash, 78, 69 bayt

Aardvarks, Babushkas ve Kamikazes!

golfed

sed -nr '/^[a-z]{9}$/s/(.)/\u\1 is for &/p'</u*/*/*/words|sort -uk1,1

DÜZENLEMELER

  • Grep, -9 bayt kurtulun

Ölçek

%sed -nr '/^[a-z]{9}$/s/(.)/\u\1 is for &/p'</u*/*/*/words|sort -uk1,1

A is for aardvarks
B is for babushkas
C is for cablecast
D is for dachshund
E is for eagerness
F is for fabricate
G is for gabardine
H is for habitable
I is for ibuprofen
J is for jabberers
K is for kamikazes
L is for labelling
M is for macaronis
N is for nailbrush
O is for obedience
P is for pacemaker
Q is for quadrants
R is for rabbinate
S is for sabotaged
T is for tableland
U is for ulcerated
V is for vacancies
W is for wackiness
X is for xylophone
Y is for yachtsman
Z is for zealously

Yararlanır / usr / share / dict / words :

words, tüm Unix ve Unix benzeri işletim sistemlerinde standart bir dosyadır ve sadece yeni satırlarla ayrılmış bir sözlük kelimesi listesidir. Örneğin, yazım denetimi programları tarafından kullanılır.


14

PowerShell , 150 141 117 75 bayt

65..90|%{$i=[char]$_;"$i is for $i$('niooaauusoioaiuaaoiineeaei'[$_-65])t"}

Çevrimiçi deneyin!

Döngüler 65için 90(yani ASCII Aiçin Z). Her yinelemede, tamsayıyı uygun hale getiririz char(yani, ASCII 65for A), $idaha sonra kullanmak üzere saklarız, dizeyle birleştiririz is for $ive sonra uygun kelimenin ortasına vururuz. Bu, uzun bir dizgiye endekslenerek yapılır ( Jonathan Allan'ın cevabından ödünç alındı ). Harfi ile bitirir tüç harfli kelime yapmak.

Sonuçta ortaya çıkan dizgilerin tümü boru hattında bırakılır Write-Outputve sonunda bir örtük nokta , aralarında yeni çizgilerle birlikte yazdırır.

Jonathan Allan'ın cevabından Rod Borrowed kelime listesi sayesinde bir sürü bayt
kurtardı


Her kelimenin ilk harfini (büyük harf) çıkarır ve [char]$ örnekle
Rod

@Rod teşekkürler. Döngünün nasıl hesaplandığını ve endekslemenin nasıl hesaplandığını ve kaydedildiğini biraz daha değiştirmek için sadece üzerinde çalıştığım şeye birleştim.
AdmBorkBork

13

Jöle , 39 bayt

;“ẉbẊWS»,⁸K;;”t
“¤ṁp}œḊṄæ®’b6ị“ʠȷ»ØAç"Y

TryItOnline!

(İki aşağıda) 56 bayt sürümü dayanarak, ancak değiştirilen sözler kaldırmak için tüm orta mektup "u"s sözlüğü kelime içine endeksi, böylece "anisole"altı daha az endeksler de hepimizin ihtiyaç harfleri sahip kolaylık vardır *,: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(not "e"sağ tarafta sıfır dizininde [ayrıca 7 ve -7 ve 0 mod 7 ile uyumlu olan herhangi bir sayı]). Ayrıca sözlükte daha erken olduğundan, çok daha yaygın olan üç baytlık arama indeksinden ziyade sadece iki tanesi var ( "anisogamete"aynı zamanda 2 de çalışacaktı).

* Aromatik eter metoksibenzenin eski okul ismi, çoğunlukla parfümlerde kullanılır.

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Got
H is for Hat
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Oat
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

Nasıl?

“¤ṁp}œḊṄæ®’b6ị“ʠȷ»ØAç"Y - Main link: no arguments
“¤ṁp}œḊṄæ®’             - base 250 compressed number -> 75711304811637630759
           b6           - convert to base 6 list -----------> [   2,    3,    5,    5,    1,    1,    5,    1,    4,    5,    3,    5,    1,    3,    1,    1,    1,    5,    3,    3,    2,    0,    0,    1,    0,    3]
              “ʠȷ»      -     word from Jelly's dictionary, "anisole" 
             ị          - index into that ------------------> [ "n" , "i" , "o" , "o" , "a" , "a" , "o" , "a" , "s" , "o" , "i" , "o" , "a" , "i" , "a" , "a" , "a" , "o" , "i" , "i" , "n" , "e" , "e" , "a" , "e" , "i"]
                  ØA    - get the uppercase alphabet
                    ç"  - zip with last link (1) as a dyad -> ["Ant","Bit","Cot","Dot","Eat","Fat","Got","Hat","Ist","Jot","Kit","Lot","Mat","Nit","Oat","Pat","Qat","Rot","Sit","Tit","Unt","Vet","Wet","Xat","Yet","Zit"]
                      Y - join with line feeds
                        - implicit print

;“ẉbẊWS»,⁸K;;”t - Link 1, join up the parts: Character, Two-Character-Word-Ending
;               - concatenate Character (e.g. "A") with
 “ẉbẊWS»        - the compressed string " is for" --->  "A is for"
        ,       - pair that with
         ⁸      - the left argument (Character) -----> ["A is for","A"]
          K     - join with spaces ------------------>  "A is for A"
           ;    - concatenate with right argument --->  "A is for An"
            ;   - concatenate with
             ”t -     "t" --------------------------->  "A is for Ant"

Önceki, 46

“¤ṪŻIð^ƥ’b4ị⁾sap⁾pt¤ØAż,@K¥€“ẉbẊWS»ØAżYF”e272¦

Kelimelerin hepsinde ikinci harf "s" veya "a" ve son harf "p" veya "t", "sa" ve "pt" nin Kartezyen ürününde dörtlü bir temel arama kullanarak. Kodun "Kullan" olarak değiştirdiği "U" sözcüğü dışında ( F”e272¦sondaki nispeten hantal kullanarak ) - böyle bir istisna olmayan bir kelime listesi bulabilirsem 39 bayta bakıyor oluruz .

Kelime listesi:

Asp, Bat, Cat, Dap, Eat, Fat, Gap, Hat, Ist, Jat, Kat, Lap, Mat, Nap, Oat, Pat, Qat, Rat, Sat, Tap, Use, Vat, Wat, Xat, Yap, Zap

bunu dene


Önceki 56 bayt

”tṁØA⁺,j“niooaauusoioaiuaaoiineeaei”œs3Z,@K¥€“ẉbẊWS»ØAżY

Kelime listesi:

Ant, Bit, Cot, Dot, Eat, Fat, Gut, Hut, Ist, Jot, Kit, Lot, Mat, Nit, Out, Pat, Qat, Rot, Sit, Tit, Unt, Vet, Wet, Xat, Yet, Zit

Biçimlendirilmiş, git


Önceki, 83 bayt

“ẉbẊWS»WṁØA⁺żż“¦ịfe$ɲVPġþ¹Øt@ƑƊŀqṁŒƑOɦ⁴ḍẊḤṁr}Ƭ¢b⁻?q&øIụNẎ9eƲi⁸'ıB.;%V,¦İ⁷ẓk½»s5¤K€Y

... '' Hangi mektubun hayvanı olmayan bir yer! '' oynayalım. Bir tane var ve sadece bir tane var - kırmızı ringa balığı (bir yalan, kırmızı ringa balığı xenon, açıkçası bir hayvan değil, hayvan değil) , burada hayvan olmayan iki beş harfli kelime var (xenon bir tane) :

Aphid, Bison, Camel, Dingo, Eagle, Finch, Gecko, Heron, Indri, Jabot, Koala, Lemur, Mouse, Nyala, Otter, Panda, Quail, Raven, Sloth, Tapir, Urial, Viper, Whale, Xenon, Yapok, Zebra

(elbette bu doğru biçimde biçimlendirilmiş, deneyin - sadece yer kazanacağımı düşündüm)


Xenonbir hayvan değil. Şaka yaptığına emindim H is for Herring, ama sanırım değil.
mbomb007

Heh, yalandı. Xenon bariz
Jonathan Allan,

Bence Jelly'in sözlüğünde olmayan xenop'u düşünüyorlar .
Jonathan Allan,

Harika fikir! Ama Uut?
Greg Martin

@GregMartin Katılıyorum, sözlerinizi heceli huylara ayırmaya başladığınızı düşünüyorum.
Magic Octopus Urn

10

Retina , 89 87 bayt

Martin Ender sayesinde 2 bayt kaydedildi


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi
[A-Z]
¶$& is for $&
^¶

m`$
t

Çevrimiçi deneyin!

Her bir harf için biten bir kelime seçtim t(bazıları oldukça belirsiz).

açıklama


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

Var olmayan (boş) girişi yukarıdaki metinle değiştirin.

[A-Z]
¶$& is for $&

Her büyük harfi ile değiştirin (newline)(itself) is for (itself). Bu, yukarıdaki metnin aşağıdaki gibi ayrı satırlara bölünmesine neden olur.

A is for Ap
B is for Ba
C is for Ca

... ve bunun gibi

^¶
​

Ancak, yeni satır her sermayenin önüne konulduğundan , kaldırılması gereken önde gelen bir yeni satır vardır. Bu aşamada kaldırılır.

m`$
t

tHer satırın sonuna bir koyun , çünkü şarkıda kullanılan her kelime biter t.


Büyük harfleri yakalamanıza gerek yoktur. Sadece $&veya $0yerine kullanın $1. Aslında bu aynı zamanda bölünmüş aşamamda byte tasarrufu sağlayabilir.
Martin Ender

@MartinEnder Teşekkürler. $&Tam olarak ne yapar ? GitHub wiki'de görmedim.
Business Cat

Bunun için bir takma addır $0(ve yalnızca .NET lezzetinin yanı sıra diğer birçok lezzetin bir parçasıdır).
Martin Ender

83'e düşürmek için bazı kısa kelimeler kullanarak, çevrimiçi deneyin
Jonathan Allan

8

Retina , 92 88 bayt

Business Cat'in cevabından bir fikir ödünç alarak 4 bayt kurtardı .

Bayt sayısı, ISO 8859-1 kodlamasını varsayar.


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit
[A-Z]
¶$& is for $&
m` .$
$&ad
G`.

Çevrimiçi deneyin!

AdmBorkBork'un kelime listesine dayanarak , ancak son ekdead daha fazla bayt kurtarmak için biten birkaç kelime daha değiştirdim .

açıklama


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

Boş (var olmayan) girişi bu dizeye çevirin. Tüm harfleri yanı sıra bu kelimelerin kalanını içeren yok sonaad .

[A-Z]
¶$& is for $&

Her büyük harften önce bir satır beslemesi yerleştirin ve sonra içine çevirin X is for X.

m` .$
$&ad

Şimdi kendi başlarına yazılan harfleri eşleştirin adve kısaltılmış sözcükleri tamamlamak için ekleyin .

G`.

Daha önce bir satır beslemesi ekleyerek oluşturulan boş satırı atın A.


8

PHP, 122 124 127 120 115 101 bayt

"Standart" <letter><filler>tyapıyı takip eder.
Daha önce kimse tarafından kullanılmayan kelimeler bulmaya çalıştım.
Değiştirmemi istediğin bir kelime görürsen, söyle.

foreach(range(A,Z)as$k=>$c)echo"$c is for $c",ceaoaaei0eieeouoaaei0eeaei[$k]?:[I=>ka,U=>ni][$c],"t\n";

Newline, \n1 bayt olarak temsil edilir, ancak sayılır.


Çıktı:

A is for Act
B is for Bet
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Get
H is for Hit
I is for Ikat
J is for Jet
K is for Kit
L is for Let
M is for Met
N is for Not
O is for Out
P is for Pot
Q is for Qat
R is for Rat
S is for Set
T is for Tit
U is for Unit
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

Garip sözler:

  • ikat :

    İkat veya İkkat, kumaşı boyamadan ve dokumadan önce iplikler üzerinde boyamaya dirençli kullanan tekstilleri modellemek için kullanılan bir boyama tekniğidir.

  • xat :

    Batı Kuzey Amerika'daki bazı Kızılderililer tarafından ölülerin anıtı olarak dikilmiş oyma bir direk

  • sivilce :

    bir sivilce; cilt lekesi.

  • qat :

    Catha edulis (khat, qat) Afrika Boynuzu ve Arap Yarımadası'na özgü bir çiçekli bitkidir.


Akıllıca bir çözüm Benzer bir şey yapacaktım, bunu gördüğüme sevindim! +1
Albert Renshaw

1
Bunlar ingilizce kelimeler değil ....
Conor O'Brien

@ ConorO'Brien Emin misiniz? PHP bildiğim kadarıyla İngilizce dilinde yazılmıştır.
Ismael Miguel,

5
@ IsmaelMiguel gibi şeyler vprintfve zend_versionkesinlikle ingilizce kelime değildir. Bu varlıkların çok azı aslında kelimelerdir.
Conor O'Brien,

1
Ben demem ziten azından ben herkes zaten ne anlama geldiğini bilmesi gerektiğini düşünüyoruz, garip bir kelime.
mbomb007

6

Pyke, 55 51 48 bayt

26.f[1R].C".d"R+E)DGjt@.^.Il 6>( F['h .dRdJl5

Burada dene!

Link 3 uzunluk içindir ve kelimeler konjonktifleri içerdiği için uygun değildir.

    [1R].C".d"R+E)                            - def function [i):
     1R]                                      -     [1, i]
        .C                                    -    chr(^)
          ".d"R+                              -   ".d"+ ^
                E                             -  eval(^) (dictionary lookup of length 1)
                                              -    gets the `i`th word in the dictionary

26.f[             DGjt@.^.Il 6>(              -  first_26():
    [                                         -     function(i)
                       .^                     -    ^.startswith(v)
                   Gjt@                       -     alphabet[current_iter-1]
                         .Il 6>               -   if ^:
                           l 6>               -    len(function(i)) > 6
                                 F['h .dRdJl5 - for i in ^:
                                  ['h         -     function(i)[0], function(i)
                                      .d      -    "is for" (unprintables 0x02, 0x07, 0x06)
                                        R     -    rotate(^, ^^)
                                         dJ   -   " ".join(^)
                                           l5 -  ^.capitalize()

Çıktılar:

A is for available
B is for because
C is for community
D is for download
E is for english
F is for features
G is for getting
H is for hardware
I is for increase
J is for jewelry
K is for kitchen
L is for locations
M is for manufacturer
N is for northern
O is for outdoor
P is for protein
Q is for quickly
R is for religion
S is for surgery
T is for thousands
U is for universal
V is for vehicles
W is for weekend
X is for xenical
Y is for youngest
Z is for zoofilia

Bunu aynı algoritmayı kullanarak Pyke dışında test edebilirsiniz. Dictionary.json gerektirir .

import json, string

with open("dictionary.json") as f_obj:
    words=json.load(f_obj)

rtn=[]
i=0
while len(rtn) != 26:
    cur_word=words[i]
    if cur_word[0]==string.lowercase[len(rtn)]:
        if len(cur_word) > 6:
            rtn.append(cur_word)
    i += 1

for i in rtn:
    print("{} is for {}".format(i[0].upper(), i))

Hayır. Ayrıca, kodunuzu çalıştırırken bir hata alıyorum.
mbomb007

Timeout running code. BAD EVAL"Çevrimiçi deneyin" bağlantınızı güncellediğinizden emin olun.
mbomb007

2
Z is for zoofiliaÇocuklarımın bunu söylemesine izin vermeden önce ciddi düşünürdüm.
zeplin


Benim yaptığım gibi bir çift alma yapan herkes için: ingilizce her zaman büyük harf kullanmaz. ;)
DLosc

6

Japt , 52 50 bayt

@ETHproductions ile İşbirliği Yaptı

;B£[R`  f `Od"¥¥º"gY]qXÃx

Birçok yazdırılamaz içerir. Çevrimiçi test edin!

Kelime listesi:

All Bar Can Dan Ear Fan Gas Has Ill Jar Kit Led Man Nit Oar Pan Qat Rat Sat Tan Udo Vat War Xis Yes Zit

Japt , küçük harflerin genel sıralamasını bir bayt tarafından azaltan shoco string sıkıştırma kitaplığını kullanır . Bir baytta yoğunlaştırılmış iki harfli çalışmaların tam listesi:

an,ar,as,at,be,bl,bo,bu,ca,ce,ch,co,da,de,di,do,ed,en,er,es,ha,he,hi,ho,im,in,is,it,le,li,ll,ly,ma,me,mi,mo,nd,ne,ng,nt,of,on,or,ou,ra,re,ri,ro,se,sh,si,st,te,th,ti,to,ul,ur,us,ut,wa,we,wh,wi

Dolayısıyla fikir alfabenin her harfi için bu çiftlerden biriyle bir kelime oluşturmaktır.

;B£   [R`  f `    Od"string"gY]qXÃ x
;BmXY{[R" is for "Od"string"gY]qX} x

;                                      // Among other things, set B to "ABC...XYZ".
 B                                     // Split B into chars.
    mXY{                           }   // Map each item X and index Y to the following:
                      "string"gY       //   Take the char at index Y in the compressed str.
                    Od                 //   Decompress.
        [R" is for "            ]      //   Put this in an array with a newline and " is for ".
                                 qX    //   Join on X, giving "\n{X} is for {word}".
                                    x  // Trim. This removes the leading newline.
                                       // Implicit: output result of last expression

Unutulmaması gereken ilginç bir şey, Japt'in backticks'e sarılmış bir ipi örtük olarak açmasını sağlarken, aslında burada bir bayt daha uzundur, çünkü dekompresyon dizesinde iki tane karakter yerine bir tane yakalamanız gerekir .


6

05AB1E , 45 42 39 38 37 36 bayt

Au'Æå•à¡P°€kš¦zᮕSè)øvy¬“ÿ€ˆ€‡ ÿt“,

Çevrimiçi deneyin!

açıklama

Aubüyük harfli alfabeyi iter.
'Æåkelimeyi zorluyor scenario.
•à¡P°€kš¦zᮕ10 taban numarasına basar 36774474076746444766322426.
endekslemek için bu rakamları kullanır scenario.
bu dizeleri birlikte listeye sokar[An, Bi, Co, ..., Zi]

v                  # for each element in the list
 y                 # push it
  ¬                # push it's first letter
   “ÿ€ˆ€‡ ÿt“      # push the string "ÿ is for ÿt" 
                   # replacing ÿ with with the top element of the stack
             ,     # print with newline

Kullanılan kelimeler: ['Ant', 'Bit', 'Cot', 'Dot', 'Eat', 'Fat', 'Got', 'Hat', 'Ist', 'Jot', 'Kit', 'Lot', 'Mat', 'Nit', 'Oat', 'Pat', 'Qat', 'Rot', 'Sit', 'Tit', 'Unt', 'Vet', 'Wet', 'Xat', 'Yet', 'Zit']

Emin değilim bazı kelimeler kullanarak 33 byte sürümü

Au'†Ž•4Ãðzòç•3BSè)øvy¬“ÿ€ˆ€‡ ÿt“,

Kelimeler: ['Ant', 'Bat', 'Cat', 'Dat', 'Eat', 'Fat', 'Gat', 'Hat', 'Ist', 'Jat', 'Kat', 'Lat', 'Mat', 'Nat', 'Oat', 'Pat', 'Qat', 'Rat', 'Sat', 'Tat', 'Ust', 'Vat', 'Wat', 'Xat', 'Yat', 'Zat']


6

Ruby, 93 84 69 63 58 62 bayt

?A.upto(?Z){|l|puts l+" is for #{"AnDoIsUn"[/#{l}./]||l+?a}t"}

Çıktı:

A is for Ant
B is for Bat
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Gat
H is for Hat
I is for Ist
J is for Jat
K is for Kat
L is for Lat
M is for Mat
N is for Nat
O is for Oat
P is for Pat
Q is for Qat
R is for Rat
S is for Sat
T is for Tat
U is for Unt
V is for Vat
W is for Wat
X is for Xat
Y is for Yat
Z is for Zat

'T' ile biten 3 harfli sözcüklerin çoğu, 'at' ile bitiyor.

Tartışmalı kelimeleri kullanma (iat, dat, amp. Ump) - 55 bayt:

?A.upto(?Z){|l|puts l+" is for "+l+("AU"[l]?"mp":"at")}

Hala bir kalıp bulmaya çalışıyorum, sadece 2 farklı son kullanmanın ve her şeyi basitleştirmenin mümkün olduğunu düşünüyorum.

@Value Ink ve @Business kedisine yardımcı olduğunuz için teşekkürler.


1
Qat ve Xis (çoğul Xi ) kelimelerdir, bu yüzden bunları kullanabilir ve aynı zamanda regex'inizi azaltabilirsiniz/#{l}../
Value Ink

Teşekkürler, benzer bir şey düşünüyordum ama şimdi bilgisayarımdan uzaktayım, kesinlikle kontrol edeceğim.
GB

Aslında, eksik harflerle ilgili 5 harfli kelime bulmaya çalışıyordum: dizi, deneme, kakma ... Ama buna sıkışıp kaldım. :-(
GB

1
Kat geçerli bir kelimedir, yani için özel durumu kaldırabilirsiniz kit.
Business Cat

1
"Dat" ve "zat" diye düşündüm, ancak ikisi de kelimelerin yasak olduğu, ikisi de aynı bağlaç (o) ve argo. "amp" ve "ump", "amper" / "amplifite" ve "umpire" kısaltmaları gibi görünmektedir. "IAT" bir kısaltmadır, yani bu da iyi değildir.
Jonathan Allan,

6

///, 163 bayt

/2/ad//1/ is for /A1Add
B1B2
C1C2
D1D2
E1Eat
F1F2
G1Goo
H1H2
I1Irk
J1Job
K1Kob
L1L2
M1M2
N1Nob
O1Owl
P1P2
Q1Qat
R1R2
S1S2
T1T2
U1Use
V1Vat
W1W2
X1X-ray
Y1Yob
Z1Zoo

Çevrimiçi deneyin

Yob - n. - Zalim ve acımasız bir adam

Hmm, bugün bir şey öğrendim ...


2
İngiltere'de bir yob, bir övgü, haydut veya bir övgüdür; zalimce ve acımasız olmaktan daha acımasız ve kabadayı.
Jonathan Allan,

1
Rusçada "Yob", İngilizce olarak "f * ck" nin bir eşdeğeri olan, müstehcen fiilin kısaltılmış geçmiş bir şeklidir. Ne kadar çok bilirseniz ...
Bay Scapegrace

5

05AB1E , 72 68 bayt

Kod:

”–³æéÁéî¹àæÑå꧵™Ä‚æ†Í„΢׆™ƒÛÌ´ŸÄ«©‡¯†‚IJ‚Ò„©É€ŠÛì„”#vy¬…ÿ€ˆ€‡ð«ì,

CP-1252 kodlamasını kullanır . Çevrimiçi deneyin!

açıklama

Aşağıdaki kod:

”–³æéÁéî¹àæÑå꧵™Ä‚æ†Í„΢׆™ƒÛÌ´ŸÄ«©‡¯†‚IJ‚Ò„©É€ŠÛì„”#

bu diziyi iter:

['Apple', 'Banana', 'Carol', 'Door', 'Elephant', 'Frog', 'Goat', 'Hat', 'Ice', 'January', 'Key', 'Love', 'Mom', 'Never', 'Open', 'Paste', 'Queen', 'Rice', 'Star', 'Test', 'Underwear', 'Very', 'Water', 'Xanax', 'Yellow', 'Zoloft']

Ve aşağıdaki kod kullanılarak işlenir:

vy¬…ÿ€ˆ€‡ð«ì,

vy              # For each string in the array
  ¬             # Get the first letter of that string
   …ÿ€ˆ€‡       # Push the string "ÿ is for" where 'ÿ' is the first letter of the string
         ð«     # Append a space character
           ì    # Prepend this string to the current string from the array
            ,   # Print with a newline

Bu diziyi neden ittiğini açıklayabilir misiniz?
Magic Octopus Urn

05AB1E'nin bir dizgede 2 byte ile temsil edilebilecek bazı sözcükleri olduğunu düşünüyorum.
12Me21

@ 12Me21 bu harika! ”–³”=Appleve int(–³,214)=23891ama yine de burada korelasyon görmüyorum.
Magic Octopus Urn


2
@carusocomputing Burada nasıl sıkıştırma ve açma eserlerin daha detaylı bir açıklamasıdır.
Adnan

5

Clojure, 159 232 bayt

Peki, şimdi kullanılan kelimeleri zorlamak çok daha kolay olacağından kesinlikle rakipsiz bir çözüm. Doğru cevaba sahip olmak uğruna (ve başkalarının kelime listesini kullanmamak için).

(mapv #(println(str(char %)" is for"(first(re-seq(re-pattern(str" "(char(+ % 32))"+\\w{3,} "))
    (reduce(fn[a b](str a(with-out-str(load-string(str "(doc "b")")))))" xyst "(map str(keys(ns-publics 'clojure.core))))))))(range 65 91))

Temel olarak, clojure.coread alanında tanımlı tüm işlevleri alır , ancak bundan sonra değerlendirir doc <function name>ve dizeye koyar. Bundan sonra onu büyük bir dizgide birleştirir (kelimesiyle birlikte xyst) ve oradan uygun kelimeleri bulur. Clojure REPL'de çalıştırılmalıdır.

Çıktı:

A is for arbitrary
B is for being
C is for changes
D is for determined
E is for exception
F is for failed
G is for given
H is for held
I is for items
J is for java
K is for keys
L is for lazy
M is for must
N is for notified
O is for option
P is for performed
Q is for queued
R is for returns
S is for state
T is for true
U is for uses
V is for validator
W is for were
X is for xyst
Y is for yields
Z is for zero

Eski çözüm:

(mapv #(println(str(char %)" is for "(some(fn[a](and(=(.charAt a 0)(char(+ % 32)))a))(conj(map str(keys(ns-publics 'clojure.core)))"orb""yes"))))(range 65 91))

or, orb1 bayt için değil .
wizzwizz4

1
Minimum uzunluk 3 harftir
12Me21

@ mbomb007 güncellendi.
cliffroot

4

JavaScript (ES6), 82 bayt

_=>btoa`pb
è¡Záî"Âh*"è1£b:ãÚA¤hJ$âRu^YåÚaæb`.replace(/(.)./g,`$1 is for $&t
`)

Bir dize döndüren anonim bir işlev. Yazdırılamaz içerir; İşte olmayan bir sürüm:

_=>btoa`\x02pb
\x80è\x11¡Z\x18áî"Âh*"è1£b:ãÚA¤hJ$âRu^YåÚaæb`.replace(/(.)./g,`$1 is for $&t
`)

Bu, @ JonathanAllen'in tekniğini kullanır ve sonuçta sadece üç harfli kelimeler kullanılır. t . Dize,AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi .

Bunun gibi iki harfli çiftleri zincirlemeye çalıştım:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

Şimdi her şeyi yaptım Xama sıkışıp kaldım Y; Söyleyebildiğim kadarıyla, ulaşılabilir tek üç harfX kelime Xisve hiçbir şey ile başlayan üç harfli kelime yok Ys.

Kayıt için, tam dize ceeeweeereueaebiueeiziais...


Vikisözlük göre, şunu kullanabilirsiniz uzive tiz...
DLosc

@DLosc Harika bir fikir. Öyleyse neye olurdu sei, skiya srisize bırakır, ree, roe, rue, rye, ile ... sadece üç harfi bırakır hangi q-kelime ı bulmak vardır edebilir qat, qisve qua. Daha fazla üç harfli kelimeler içeren bir Vikisözlük sayfası var mı?
ETHProductions

Üç harfli kelimeler için bir kategori var , ancak tam bir liste değil. Mesela, que içermiyor (ki sadece burada bildiğim için başka bir cevap kullandım). ( Yine pde biten bir u
sözcük

@DLosc Zaten kullanıyordum piu, bu yüzden hiç sorun değil: P Thanks!
ETHProductions

Hm. piuoldukça sınırda görünüyor - wiktionary ingilizceye sahip değil ve dictionary.com da var più(bu meydan okuma için aksanları nasıl düşündüğümüzü bilmiyoruz). Ama evet, ys_sorun olur.
DLosc

3

Mathematica, 97 bayt

a@c_:={ToUpperCase@c," is for ",Select[WordList[],#~StringTake~1==c&][[3]],"
"};a/@Alphabet[]<>""

Mathematica’da WordListher harfle başlayan üçüncü kelimeye bakar ; bu tek harfli kelimelerden ve yorumlardan kaçınır. İzinde bir yeni hat var.

A is for aardvark
B is for babble
C is for cabala
D is for dabbled
E is for eagerly
F is for fable
G is for gabble
H is for haberdashery
I is for iambus
J is for jabberer
K is for kaleidoscope
L is for label
M is for mac
N is for nacelle
O is for oak
P is for pabulum
Q is for quackery
R is for rabbinate
S is for sable
T is for tabbouleh
U is for udder
V is for vacant
W is for wad
X is for xenophobic
Y is for yachting
Z is for zapper

eep, tamamen unuttum, teşekkürler
Greg Martin

3

Harika, 76 73 bayt

(76 - 73 bayt arasında düzenlendi, teşekkür ederim kedi)

Yakut çözeltisinden esinlenmiştir:

('A'..'Z').any{i->println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}"}

kullanırız any daha kısa olacak ve tüm println ifadeleri return false olarak her yerine. Dizedeki özel durumlar için, groovy'de eşleşmeyi döndüren veya boş olan String.find komutunu kullanırız. Boş olduğunda, elvis işlecini ?:içinde biten bir sözcük döndürmek için kullanırız.at bunun yerine kullanırız.

Çıktı:

A is for Ant
B is for Bat
C is for Cat
D is for Dat
E is for Eat
F is for Fat
G is for Gat
H is for Hat
I is for Ivy
J is for Jat
K is for Kat
L is for Lat
M is for Mat
N is for Nat
O is for Oat
P is for Pat
Q is for Qat
R is for Rat
S is for Sat
T is for Tat
U is for Use
V is for Vat
W is for Wat
X is for Xat
Y is for Yat
Z is for Zat

Groovy, özyineleme, 74 bayt

{i->println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}";call(++i)}('A')

metni ilk yanıttan yazdırır ve ardından bir PatternFormatException öğesini atar. Kapatmayı tekrarlı olarak 'A' ile ++charbaşlayıp, ardından karaktere kadar artan şekilde diyoruz.Z hatayı fırlatıp .

Groovy, hile yaparak, 77 bayt

Linç edilme riskiyle:

print 'http://codegolf.stackexchange.com/q/109502'.toURL().text[21796..22189]

yani bu sayfadaki verileri okuyun ve geçerli bir cevabın tanımını başlangıçta yazdırın. Savunmamda ... istenen cevabı yazdırıyor ... şimdi kimse sayfayı düzenlemiyor ...

Groovy, 'times' kullanarak, 81 bayt

Python üzerine bina üç harfli kelime deseni ile cevap:

26.times{i,c=i+65->printf"%c is for %c${'niooaauusoioaiuaaoiineeaei'[i]}t\n",c,c}

baskılar:

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

Büyük, özyinelemeyle (...), 83 bayt

Yeni satırları bir karakter olarak saydığımızı varsayalım.

i=args?args[0]:'A'
println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}"
main(++i)

metni ilk yanıttan yazdırır ve ardından PatternSyntaxException öğesini atar.

Groovy, everyWithIndex, 88 bayt kullanarak

'niooaauusoioaiuaaoiineeaei'.eachWithIndex{c,i->char x=i+65;println "$x is for $x${c}t"}

Groovy, transpose kullanarak, 102 bayt

['A'..'Z','niooaauusoioaiuaaoiineeaei'as List].transpose().each{println it[0]+" is for ${it.join()}t"}

Kat geçerli bir kelimedir, yani için özel durumu kaldırabilirsiniz kit.
Business Cat

düzenledi, teşekkür ederim. Beni 3 bayt
kurtardı:)

2

05AB1E , 77 bayt

•‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Òו36B3ôvy™¬"ÿ is for ÿ"}»

Çevrimiçi deneyin!

Sıkıştırılmış aşağıdaki dizeyi kullanır:

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP

Base-214'e dönüştürüldü:

‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Ò×

3 harfli bir scrabble kelimesi listesi kullanılır: http://wordfinder.yourdictionary.com/letter-words/3

Çıkış aşağıdaki gibidir:

A is for Ass
B is for Bin
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Got
H is for Hat
I is for Ill
J is for Jot
K is for Kit
L is for Lot
M is for Met
N is for Not
O is for Oat
P is for Pat
Q is for Que
R is for Rot
S is for Set
T is for Tit
U is for Use
V is for Vat
W is for Wet
X is for Xis
Y is for Yip
Z is for Zap

70 baytlık bir sürümü vardı, ancak 2 harfli kelimelere izin verilmiyor.


Açıklaması:

•‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Òו # Compressed String

36B3ô                   # Decompress, split into 3s.
     v               }  # For each word...
      y™¬"ÿ is for ÿ"   # Take first letter of word, interpolate.
                      » # Print with newlines.

quiİngilizce bir kelime değil. Buna bakmak sadece Latince bir kelimeyi ortaya koyuyor.
mbomb007

@ mbomb007, Que3 harfli yasal bir scrabble kelimesi olduğunu biliyordum, yanlış yazılmış.
Magic Octopus Urn

Güzel sözler :) ile değiştirilebilir ,.
Emigna,


2

Lithp , 136 125 117 bayt

((import lists)(each(split "niooaauusoioaiuaaoiineeaei" "")
#X,C::((print(chr(+ 65 C))"is for"(+(chr(+ 65 C))X "t"))))

(Okunabilirlik için bölünmüş)

Çevrimiçi deneyin!

Bu hemen hemen Python cevabının bir limanı.

  • Kullanarak 11 bayt kaydedildi eachDizini
  • Yararsız çağrıyı kaldırarak 8 bayt kurtardı (scope #)

Çıktı:

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

2
Güzel isim! (Bilmiyorum, bir parçadan fırlamış, dilin bir konuşma yapmış olmasına rağmen?)
Jonathan Allan

1
Teşekkür ederim! Hayır, dil telaffuz ile iyi. Lisp’in bastarize edilmiş bir versiyonu. Lisp'i kafamı sarmak için çok zor buldum, Lithp benim için mantıklı bir şekilde benim üstümde. Çoğu Lisp kodundan daha okunaklı olmalıdır.
Andrakis

1

Toplu iş, 250 bayt

@set s=ABCDEFGHIJKLMNOPQRSTUVWXYZ
@for %%w in (eon dellium zar jinn lbow hon nat our rk unta not lama nemonic domo uija sycho uay ye ee sunami rn ex rap enophobe ou ugzwang)do @call:c %%w
@exit/b
:c
@echo %s:~0,1% is for %s:~0,1%%1
@set s=%s:~1%

Asla iyi bir puan alamayacağım için bulabildiğim en kısa komik sözleri aradım:

A is for Aeon
B is for Bdellium
C is for Czar
D is for Djinn
E is for Elbow
F is for Fhon
G is for Gnat
H is for Hour
I is for Irk
J is for Junta
K is for Knot
L is for Llama
M is for Mnemonic
N is for Ndomo
O is for Ouija
P is for Psycho
Q is for Quay
R is for Rye
S is for See
T is for Tsunami
U is for Urn
V is for Vex
W is for Wrap
X is for Xenophobe
Y is for You
Z is for Zugzwang

1

yığılmış , 72 bayt

72 bayt için iki tane var !

65@i$'niooaauusoioaiuaaoiineeaei'{!i#::' is for '+\n+'t'+ +out i 1+@i}"!
{!n#::' is for '+\'niooaauusoioaiuaaoiineeaei'n 65-#+'t'+ +out}65 90 for

Çevrimiçi deneyin! Bu harika kalıbı kullanmak. (Sormadan önce, ++tek bir simge olurdu,+ + bunun yerine kullanılır.)

Her ikisi de, 'dan' 65ye yinelenerek çalışır90 ve doğru karakter dizisini almak. Notlar:

  • #: bir takma ad chr
  • # bir takma ad get
  • {!...}ile aynıdır { n : ... }(lambda ilen parametre olarak )

73 bayt için:

'niooaauusoioaiuaaoiineeaei'toarr{e i:65 i+#::' is for '+\e+'t'+ +out}map

1

Mathematica 93 Bayt

ToUpperCase@#<>" is for "<>Cases[WordList[],s_/; s~StringPart~1==#][[9]]&/@Alphabet[]//Column

verim

A is for abandoned
B is for babushka
C is for cabin
D is for dactylic
E is for eardrum
F is for fabricator
G is for gadabout
H is for habitation
I is for ice
J is for jackal
K is for kappa
L is for laboratory
M is for macaroni
N is for nagger
O is for oarsman
P is for pachysandra
Q is for quadratic
R is for rabidness
S is for saccharin
T is for tableland
U is for ulcer
V is for vacationist
W is for wadi
X is for xylene
Y is for yammer
Z is for zebra

1

Groovy, 72 bayt

c=65;"niooaauusoioaiuaaoiineeaei".any{printf"%c is for %<c%st\n",c++,it}

Çıktı

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

1

Python 3, 145 137 135 bayt

Çıktıyı her çalıştırmada sözde rastgele yapmak için bazı baytları feda ettim. Buradaki fikir, en az 3 karakterden oluşan küçük harfleri aramak /usr/share/dict/wordsve ardından bu listeden birini seçmek id([x])%99.

import re
for x in range(65,91):print("%c is for "%x+re.findall("\n(%c.{3,})"%(x+32),open('/usr/share/dict/words').read())[id([x])%99])

Düzenlemeler

  • Kaldırılan title() kelimeler olarak büyük harfle gerekmez.
  • Düzeninin "\n(%c.{3,})"kaldırılmasını sağlamak için regex'i (+ 3 bayt) olarak değiştirdi.,re.M(- 5 bayt) .

Örnek çıktı:

A is for abacinate
B is for bacchantic
C is for caback
D is for dactylosternal
E is for eagless
F is for factful
G is for gabbroic
H is for hackneyed
I is for iambize
J is for jacutinga
K is for kadaya
L is for labra
M is for macaco
N is for nailwort
O is for oakenshaw
P is for pachysomia
Q is for quachil
R is for racer
S is for sabbath
T is for tabulable
U is for ubication
V is for vagabondism
W is for wabe
X is for xenobiosis
Y is for yacca
Z is for zeed

Hepsinin geçerli olduğundan emin değilim. Örneğin, Qohelebir arama bunun bir kitap veya kutsal metin hacmi olduğunu göstermesine rağmen bir tanım bulamıyorum .
Andrakis

1
Regex'imin her kelimenin sonuna kadar eşleşmediğini fark ettim - düzeltecek.
PidgeyUsedGust

Onu düzeltti. Şimdi sadece küçük harf arıyorum, kelimelerin içinde isimleri olmayan sözcükleri tamamlayın.
PidgeyUsedGust

1

GNU sed, 81 + 1 (r bayrağı) = 82 bayt

Bu, Jonathan Allan'ın cevabındaki kelime listesinin büyük bir uygulamasıdır .

s:$:AnBiCoDoEaFaGuHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi:
s:(.).:\1 is for &t\n:g

Paylaşılan bitiş harfi dışındaki kelimeler t satır 1'de birleştirilmiş formda verilir ve ardından istenen formatta satır 2 ile yazdırılır. Sonunda yeni bir satır var.

Çalıştır :

sed -rf alphabet_song.sed <<< ""

1

Java 7, 124 121 bayt

String c(){String r="";for(char c=65;c<91;r+=c+" is for "+c+"baaonaiineioaeaoaaeileeaoi".charAt(c++-65)+"t\n");return r;}

Dayanarak @JonathanAllen 'ın cevabı Java hiçbir fantezi dahili bir sözlüğü sahip olduğundan,. ;) Alfabenin tamamı için başka bir bitiş harfi bulmaya çalıştım ( sveya nveyay ) ya da benzeri bir orta harfi ( aveya e), ancak çoğu sadece bir veya iki kelime eksik, bu yüzden kullanarak sona erdi tyanı. Kelimeler wordhippo.com'dan manuel olarak seçildi .

Ungolfed:

Burada dene.

class M{
  static String c(){String r="";for(char c=65;c<91;r+=c+" is for "+c+"baaonaiineioaeaoaaeileeaoi".charAt(c++-65)+"t\n");return r;}

  public static void main(String[] a){
    System.out.println(c());
  }
}

Çıktı:

A is for Abt
B is for Bat
C is for Cat
D is for Dot
E is for Ent
F is for Fat
G is for Git
H is for Hit
I is for Int
J is for Jet
K is for Kit
L is for Lot
M is for Mat
N is for Net
O is for Oat
P is for Pot
Q is for Qat
R is for Rat
S is for Set
T is for Tit
U is for Ult
V is for Vet
W is for Wet
X is for Xat
Y is for Yot
Z is for Zit

1
İçin +1 +a+++. Bunları yazmayı severim: P
Poke

1

PHP, 91 87 86 76 bayt

dayalı Jonathan Allan's kelime listesine :

for($a=A;$i<26;)echo"$a is for ",$a++,neaoaaeiseioeuuoaaiineiaei[$i++],"t
";

daha eski sürümler, 86 bayt:

for($a=A;a&$c=reaoaaei0eioeuuoaaii0eiaei[$i++];)echo"$a is for ",$a++,$c?$c.t:nto,"
";

veya

for($a=A;$c=reaoaaeiHeioeuuoaaiiHeiaei[$i++];)echo"$a is for ",$a++,$c^x?$c.t:nto,"
";

İle koş -nr.

çıktı

A is for Art
B is for Bet
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Get
H is for Hit
I is for Into
J is for Jet
K is for Kit
L is for Lot
M is for Met
N is for Nut
O is for Out
P is for Pot
Q is for Qat
R is for Rat
S is for Sit
T is for Tit
U is for Unto
V is for Vet
W is for Wit
X is for Xat
Y is for Yet
Z is for Zit

Tuhaf sözler için, İsmail’in cevabına bakınız.

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.