Buat Lagu Alfabet

55

Tujuan Anda adalah membuat lagu alfabet sebagai teks dalam bentuk berikut (secara berurutan):

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>

Contoh output:

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

Aturan:

  • Setiap "huruf" dari lagu memiliki baris sendiri, jadi ada 26 baris, dan kemungkinan linefeed.

  • Outputnya peka terhadap huruf besar-kecil:

    • Huruf pada awal setiap baris harus dikapitalisasi.
    • is for adalah huruf kecil.
    • Kata yang dipilih tidak perlu huruf besar, tetapi mungkin. Semua lini harus konsisten.
  • Kata yang dipilih untuk setiap baris terserah Anda, tetapi harus berupa kata bahasa Inggris yang valid dengan setidaknya 3 huruf, dan tidak boleh berupa kata hubung (suka andatau but), kata seru / seru (suka heyatau yay), singkatan (suka XLS), atau nama (seperti Jon).

  • Meskipun saya ragu ada orang yang akan merasa lebih pendek, saya akan merasa dapat diterima untuk menggunakan frasa alih-alih satu kata. Jadi jika karena alasan tertentu S is for Something smells fishy...lebih pendek, lakukanlah.

  • Masukkan output program Anda dalam jawaban Anda, atau setidaknya daftar kata-kata yang Anda gunakan (jika ada tautan untuk menjalankan kode Anda secara online, kami tidak perlu melihat seluruh output).

  • Kode terpendek menang


Tantangan ini terinspirasi oleh video ini .

mbomb007
sumber
Saya menduga bahasa gaul tidak diizinkan, meskipun tercantum dalam kamus yang tepat? (mis. "Ketika dia menyadari bahwa dia menuju ke pedalaman lagi, dia hanya menarik uey !")
Jonathan Allan
1
Diberikan beberapa jawaban, lagu ini oleh Barenaked Ladies tampaknya relevan.
AdmBorkBork
1
@Jonathan Allan Tidak gaul. Kamus berisi banyak hal yang bukan kata-kata teknis. Singkatan adalah satu, gaul adalah yang lain.
mbomb007
4
Sayang sekali ini berubah menjadi menemukan 3 kata kata yang diakhiri dengan huruf yang sama.
12Me21
1
Ada beberapa jawaban menggunakan kamus eksternal. Tidakkah mereka harus menambahkan ukuran file itu ke kode mereka?
pipa

Jawaban:

3

SOGL 0.8.1 , 60 32 byte

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

Penjelasan:

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

Ini adalah jawaban Jonathan Allan , tapi porting ke bahasa ini.

Versi lama: (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)

keluaran:

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

Ini bukan bahasa terpendek yang bisa dilakukan oleh bahasa ini, tetapi harus menjadi yang terbaik dengan kata-kata yang dikodekan.

dzaima
sumber
57

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

Menggunakan halaman manual untuk X , sebagai sumber kata-kata.

Golf

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

EDIT

  • Menggunakan halaman manual 'xyst' yang tidak ada + |&untuk menyimpan 5 byte;
  • Disimpan 4 byte lagi, dengan menukarkan sed dan sortir .

Uji

%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 
zeppelin
sumber
3
Apakah kata lsof dan xregs? :)
OldBunny2800
1
@ OldBunny2800 harus diperbaiki sekarang
zeppelin
2
Saya mencarinya, dan ya, xyst adalah kata yang nyata. :)
OldBunny2800
3
Sepertinya anak-anak akan belajar beberapa kata-kata besar. : D
mbomb007
1
@JonathanAllan Sayangnya, halaman manual untuk "x" tidak tersedia di TIO, tetapi di sini ada tautan tio.run/nexus/… , yang menggunakan "man man" sebagai gantinya. Trik dengan xyst adalah bahwa man xyst akan mengeluh bahwa ada "Tidak ada entri manual untuk xyst" ke stderr, yang kemudian digabung menjadi stdout dengan |&, sehingga dapat dipahami.
zeppelin
33

Python 2 , 88 77 byte

-11 byte terima kasih kepada xnor (hindari zip dengan melintasi string dan menghitung cdari 65)

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

Cobalah online!

(Port jawaban Jelly saya, saat itu 56 byte.)

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
Jonathan Allan
sumber
4
Saya suka metode kata-kata yang berakhir dengan t. Iterasi dapat dipersingkat dengan memperbarui xsecara paralel .
xnor
Sangat cerdas, seperti biasa; Terima kasih!
Jonathan Allan
1
Apa Unt? Tidak dapat menemukannya di mana pun
Albert Renshaw
Saya tidak berpikir Untitu sebuah kata, tetapi Utbegitu Anda dapat mengganti ndalam literal Anda dengan \0untuk membuat ini valid dan hanya menambahkan satu byte lagi. Edit aturan Nevermind mengatakan harus panjangnya 3 huruf ... hmmm
Albert Renshaw
4
@AlbertRenshaw An unt adalah Mole Eropa menurut Merriam-Webster . Alternatif akan menjadi ult menurut Wiktionary itu bukan hanya singkatan (yang terdaftar dengan periode, seperti ult. ).
Jonathan Allan
31

Pesta, 78, 69 byte

Aardvarks, Babushkas, dan Kamikaze!

Golf

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

EDIT

  • Singkirkan grep, -9 byte

Uji

%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

Manfaatkan / usr / share / dict / kata-kata :

kata-kata adalah file standar pada semua sistem operasi mirip Unix dan Unix, dan hanyalah daftar kata-kata kamus yang dibatasi oleh baris baru. Ini digunakan, misalnya, oleh program pemeriksa ejaan.

zeppelin
sumber
14

PowerShell , 150 141 117 75 byte

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

Cobalah online!

Loop dari 65ke 90(yaitu, ASCII Ake Z). Setiap iterasi, kita mengubah bilangan bulat menjadi yang sesuai char(yaitu, ASCII 65untuk A), menyimpannya menjadi $iuntuk digunakan nanti, menyatukan string itu dengan is for $i, dan kemudian menempel di tengah kata yang sesuai. Itu dilakukan dengan mengindeks ke string panjang (dipinjam dari jawaban Jonathan Allan ). Akhiri dengan huruf tuntuk membuat kata tiga huruf.

String yang dihasilkan semuanya tersisa di pipa, dan implisit Write-Outputpada akhirnya mencetaknya dengan baris baru di antaranya.

Menyimpan banyak byte berkat daftar kata Rod
Borrowed dari jawaban Jonathan Allan

AdmBorkBork
sumber
Anda dapat menghapus huruf pertama dari setiap kata (huruf besar) dan mencetak dengan [char]$ contoh
Rod
@Rod, terima kasih. Saya menambahkan bahwa dengan apa yang baru saja saya kerjakan untuk mengubah cara pengulangan dihitung dan bagaimana pengindeksan dihitung dan disimpan lagi.
AdmBorkBork
13

Jelly , 39 byte

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

TryItOnline!

Berdasarkan versi 56 byte (dua di bawah), tetapi mengubah kata-kata untuk menghapus semua huruf tengah "u"sehingga dapat diindeks ke dalam kamus kata "anisole"*, yang memiliki kenyamanan memiliki huruf-huruf yang kita butuhkan semua pada indeks kurang dari enam: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(perhatikan "e"di sebelah kanan ada di indeks nol [juga 7 dan -7 dan nomor lainnya kongruen ke 0 mod 7]). Ini juga awal dalam kamus sehingga hanya memiliki dua dan bukan indeks pencarian tiga byte yang jauh lebih umum ( "anisogamete"juga akan bekerja untuk 2).

* Nama sekolah lama untuk aroxy etoxy methoxybenzene, sering digunakan dalam parfum.

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

Bagaimana?

“¤ṁ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"

Sebelumnya, 46

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

Kata-kata semuanya memiliki huruf kedua "s" atau "a" dan huruf terakhir "p" atau "t" menggunakan pencarian basis empat dalam produk Cartesian "sa" dan "pt". Kecuali kata "U", yang diubah kode menjadi "Gunakan" (menggunakan yang relatif besar F”e272¦di akhir) - jika saya dapat menemukan daftar kata seperti ini yang tidak memiliki pengecualian seperti itu, kita akan melihat 39 byte .

Daftar kata:

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

coba yang ini


56 byte sebelumnya

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

Daftar kata:

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

Ini diformat, cobalah


Sebelumnya, 83 byte

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

... mari kita mainkan "Temukan huruf mana yang tidak memiliki binatang!" ada satu, dan hanya satu - waspada untuk ikan herring merah (bohong, herring merah adalah xenon, yang merupakan elemen, jelas bukan binatang) , adalah dua kata lima huruf di sini yang bukan hewan (xenon menjadi satu) :

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

(tentu saja ini diformat dengan benar, coba - saya hanya berpikir saya akan menghemat ruang)

Jonathan Allan
sumber
Xenonbukan binatang. Saya yakin Anda membuat lelucon dengan memiliki H is for Herring, tapi saya rasa tidak.
mbomb007
Heh, itu bohong. Xenon yang jelas :)
Jonathan Allan
Saya pikir mereka memikirkan xenop , yang tidak ada dalam kamus Jelly.
Jonathan Allan
Ide bagus! Tapi Uut?
Greg Martin
@GregMartin Saya setuju, saya pikir Anda mulai memindahkan kata-kata Anda menjadi dengungan suku kata.
Magic Gurita Guci
10

Retina , 89 87 byte

Disimpan 2 byte berkat Martin Ender


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

m`$
t

Cobalah online!

Saya memilih satu kata untuk setiap huruf yang diakhiri t(beberapa di antaranya tidak jelas).

Penjelasan


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

Ganti input yang tidak ada (kosong) dengan teks di atas.

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

Ganti setiap huruf kapital dengan (newline)(itself) is for (itself). Ini menghasilkan teks di atas yang dipisah menjadi beberapa baris terpisah

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

... dan seterusnya

^¶
​

Namun, karena baris baru ditempatkan sebelum modal masing-masing, ada baris baru yang harus dihapus. Itu dihapus pada tahap ini.

m`$
t

Letakkan a tdi akhir setiap baris, karena setiap kata yang digunakan dalam lagu berakhir t.

Kucing Bisnis
sumber
Anda tidak perlu mengambil huruf besar. Cukup gunakan $&atau $0alih-alih $1. Sebenarnya itu mungkin juga menyimpan byte pada tahap split saya.
Martin Ender
@ MartinEnder Terima kasih. Apa $&yang tepatnya dilakukan? Saya tidak melihatnya di wiki GitHub.
Business Cat
Ini adalah alias untuk $0(dan itu hanya bagian dari rasa .NET, dan juga sebagian besar rasa lainnya).
Martin Ender
Dengan menggunakan beberapa kata yang lebih pendek untuk membuatnya menjadi 83, coba online
Jonathan Allan
8

Retina , 92 88 byte

Disimpan 4 byte dengan meminjam ide dari jawaban Business Cat .

Hitungan byte mengasumsikan penyandian ISO 8859-1.


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

Cobalah online!

Berdasarkan daftar kata AdmBorkBork , tetapi saya telah mengubah beberapa kata lagi menjadi kata-kata yang berakhir aduntuk menghemat lebih banyak byte pada akhiran umum.

Penjelasan


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

Ubah input kosong (tidak ada) menjadi string ini. Ini berisi semua huruf serta kata-kata yang tidak berakhirad .

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

Masukkan umpan baris sebelum setiap huruf besar dan kemudian ubah menjadi X is for X.

m` .$
$&ad

Cocokkan huruf-huruf yang sekarang sendiri dan tambahkan aduntuk melengkapi kata-kata singkat.

G`.

Buang baris kosong yang telah dibuat dengan memasukkan umpan baris sebelumnya A.

Martin Ender
sumber
8

PHP, 122 124 127 120 115 101 byte

Mengikuti struktur "standar" <letter><filler>t.
Saya mencoba memunculkan kata-kata yang sebelumnya tidak digunakan oleh siapa pun.
Jika Anda melihat kata yang ingin Anda ganti, katakan padaku.

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

Baris baru direpresentasikan sebagai \ntetapi dihitung sebagai 1 byte.


Keluaran:

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

Kata-kata aneh:

  • ikat :

    Ikat, atau ikkat, adalah teknik pewarnaan yang digunakan untuk membuat pola tekstil yang menggunakan pewarnaan pada benang sebelum pewarnaan dan menenun kain.

  • xat :

    Sebuah pahatan berukir didirikan sebagai peringatan kematian oleh beberapa orang India di Amerika Utara bagian barat

  • zit :

    jerawat; kulit cacat.

  • qat :

    Catha edulis (khat, qat) adalah tanaman berbunga asli Tanduk Afrika dan Semenanjung Arab.

Ismael Miguel
sumber
Solusi cerdas saya akan melakukan sesuatu yang serupa, senang melihat ini! +1
Albert Renshaw
1
Ini bukan kata-kata bahasa Inggris ....
Conor O'Brien
@ ConorO'Brien Anda yakin? PHP semuanya ditulis dalam bahasa Inggris, sejauh yang saya tahu.
Ismael Miguel
5
@IsmaelMiguel suka vprintfdan zend_versionpasti bukan kata-kata bahasa Inggris. Sangat sedikit dari entitas ini sebenarnya kata-kata.
Conor O'Brien
1
Saya tidak akan menyebut zitkata yang aneh, setidaknya, saya pikir semua orang harus sudah tahu apa artinya.
mbomb007
6

Pyke, 55 51 48 byte

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

Coba di sini!

Tautan adalah untuk 3 panjang dan tidak memenuhi syarat karena kata-kata termasuk kata sambung.

    [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()

Output:

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

Anda dapat menguji ini di luar Pyke menggunakan algoritma yang sama. Membutuhkan dictionary.json .

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))
Biru
sumber
Tidak. Juga, saya mendapatkan kesalahan dalam menjalankan kode Anda.
mbomb007
Timeout running code. BAD EVALPastikan Anda memperbarui tautan "Coba daring".
mbomb007
2
Z is for zoofiliaSaya akan mempertimbangkan dengan serius sebelum membiarkan anak-anak saya menyanyikan ini.
zeppelin
Bagi siapa pun yang melakukan pengambilan ganda seperti yang saya lakukan: bahasa Inggris tidak selalu huruf besar. ;)
DLosc
6

Japt , 52 50 byte

Berkolaborasi dengan @ETHproductions

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

Berisi banyak unsintables. Uji secara online!

Daftar kata adalah:

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 menggunakan pustaka kompresi string shoco , yang mengurangi proses umum huruf kecil menjadi byte. Berikut adalah daftar lengkap semua run dua huruf yang diringkas menjadi satu byte:

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

Jadi idenya adalah untuk membentuk sebuah kata dengan salah satu pasangan ini untuk setiap huruf alfabet.

;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

Satu hal yang menarik untuk dicatat adalah bahwa sementara Japt secara implisit dapat mendekompresi string yang dibungkus dengan backticks, itu sebenarnya satu byte lebih lama di sini karena Anda harus mengambil dua karakter dalam string yang didekompresi, daripada satu.

Oliver
sumber
6

05AB1E , 45 42 39 38 37 36 byte

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

Cobalah online!

Penjelasan

Aumendorong alfabet huruf besar.
'Æåmendorong kata scenario.
•à¡P°€kš¦zᮕmendorong nomor basis-10 36774474076746444766322426.
menggunakan digit tersebut untuk mengindeks scenario.
ritsleting string tersebut bersama-sama ke dalam daftar[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

Kata-kata yang digunakan: ['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']

Versi 33 byte menggunakan beberapa kata yang saya tidak yakin

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

Kata-kata: ['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']

Emigna
sumber
6

Ruby, 93 84 69 63 58 62 byte

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

Keluaran:

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

Semua kata 3 huruf berakhir dengan 't', sebagian besar dengan 'at'.

Menggunakan kata-kata kontroversial (iat, dat, amp. Ump) - 55 byte:

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

Masih mencoba menemukan pola, saya pikir mungkin untuk menggunakan hanya 2 ujung yang berbeda, dan menyederhanakan semuanya.

Terima kasih @Value Ink dan @Business cat untuk membantu.

GB
sumber
1
Qat dan Xis (jamak dari Xi ) adalah kata-kata, sehingga Anda dapat menggunakannya dan juga mengurangi regex pencarian Anda ke/#{l}../
Value Ink
Terima kasih, saya sedang memikirkan sesuatu yang serupa tetapi saya jauh dari PC saya sekarang, saya pasti akan memeriksanya.
GB
Sebenarnya saya sedang berusaha menemukan 5 kata kata untuk huruf-huruf yang hilang: array, esai, tatahan ... Tapi saya terjebak pada itu. :-(
GB
1
Kat adalah kata yang valid, sehingga Anda dapat menghapus kasus khusus untuk kit.
Business Cat
1
Saya berpikir tentang "dat" dan "zat" tetapi keduanya sama hubungannya (itu) dan gaul, yang keduanya jenis kata dilarang. "amp" dan "ump" tampaknya merupakan singkatan dari "ampere" / "amplify" dan "wasit". "IAT" adalah akronim, jadi itu juga tidak baik.
Jonathan Allan
6

///, 163 byte

/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

Cobalah online

Yob - n. - Orang yang kejam dan brutal

Hm, pelajari sesuatu hari ini ...

steenbergh
sumber
2
Di Inggris, yob adalah lout, thug, atau boor; lebih kasar dan gaduh daripada kejam dan brutal.
Jonathan Allan
1
Dalam bahasa Rusia "Yob" adalah bentuk kata kerja cabul yang disingkat, yang pada dasarnya setara dengan "f * ck" dalam bahasa Inggris. Semakin banyak Anda tahu ...
Mr Scapegrace
5

05AB1E , 72 68 byte

Kode:

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

Menggunakan pengkodean CP-1252 . Cobalah online!

Penjelasan

Kode berikut:

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

mendorong array ini:

['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']

Dan diproses menggunakan kode berikut:

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
Adnan
sumber
Bisakah Anda menjelaskan mengapa itu mendorong array itu?
Magic Octopus Mm
Saya pikir 05AB1E memiliki beberapa kata bawaan yang dapat diwakili oleh 2 byte dalam sebuah string.
12Me21
@ 12Me21 itu keren! ”–³”=Appledan int(–³,214)=23891tapi saya masih tidak melihat korelasinya di sini.
Magic Octopus Mm
Saya yakin ini adalah daftarnya: github.com/Adriandmen/05AB1E/blob/master/dictionary.py
12Me21
2
@carusocomputing Berikut ini adalah deskripsi yang lebih rinci tentang cara kerja kompresi dan dekompresi.
Adnan
5

Clojure, 159 232 byte

Nah, sekarang ini tentu saja solusi non-bersaing karena akan jauh lebih mudah untuk meng-hardcode kata-kata yang digunakan. Meletakkannya di luar sana hanya demi jawaban yang benar (dan tidak menggunakan daftar kata orang lain).

(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))

Pada dasarnya masih mendapatkan semua fungsi yang didefinisikan dalam clojure.corenamespace, tetapi setelah itu mengevaluasi doc <function name>dan memasukkannya ke dalam string. Setelah itu menggabungkannya menjadi satu string besar (dengan kata xyst) dan menemukan kata-kata yang tepat dari sana. Harus dijalankan di Clojure REPL.

Keluaran:

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

Solusi lama:

(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))
cliffroot
sumber
or, tidak orb, untuk 1 byte.
wizzwizz4
1
Panjang minimum adalah 3 huruf
12Me21
@ mbomb007 diperbarui.
cliffroot
4

JavaScript (ES6), 82 byte

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

Fungsi anonim mengembalikan string. Berisi unsintables; inilah versi yang tidak:

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

Ini menggunakan teknik @ JonathanAllen, menggunakan hanya tiga kata kata yang diakhiri t. String akan didekompresi menjadi AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi.

Saya mencoba merantai dua huruf seperti:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

Saya sekarang telah berhasil sampai ke sini Xtetapi terjebak Y; sejauh yang saya tahu, satu-satunya Xkata tiga huruf yang dapat dicapai adalah Xis, dan tidak ada kata tiga huruf yang dimulai dengan Ys.

Sebagai catatan, string penuh adalah ceeeweeereueaebiueeiziais...

Produksi ETH
sumber
Menurut Wiktionary, Anda dapat menggunakan uzidan tiz...
DLosc
@Dosc Ide bagus. Maka Anda harus melakukan sei, skiatau sri, yang daun Anda denganree , roe, rue, rye, yang daun Anda dengan ... hanya tiga surat q-words saya dapat menemukan adalah qat, qis, dan qua. Apakah ada halaman Wiktionary dengan lebih banyak kata tiga huruf?
ETHproduk
Ada kategori untuk kata-kata tiga huruf, tetapi itu bukan daftar lengkap. Misalnya, tidak berisi que (yang saya hanya tahu karena jawaban lain di sini menggunakannya). (Tidak yakin ada pkata - kata yang berakhir dengan u.)
DLosc
@Dosc saya sudah menggunakan piu, jadi itu tidak masalah sama sekali: P Terima kasih!
ETHproduk
Hm piutampaknya cukup batas - wiktionary tidak memilikinya sebagai bahasa Inggris, dan dictionary.com memilikinya più(tidak tahu bagaimana kami mempertimbangkan aksen untuk tantangan ini). Tapi ya, ys_akan jadi masalah.
DLosc
3

Mathematica, 97 byte

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

Lihat di Mathematica WordListuntuk kata ketiga yang dimulai dengan setiap huruf; ini menghindari satu kata kata dan kata seru. Memiliki baris baru trailng.

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
Greg Martin
sumber
eep, benar-benar lupa, terima kasih
Greg Martin
3

Groovy, 76 73 byte

(diedit dari 76 hingga 73 byte, terima kasih, kucing)

Terinspirasi oleh solusi ruby:

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

kami menggunakan anymasing-masing karena lebih pendek dan semua pernyataan println mengembalikan false. Untuk kasus khusus dalam string, kami menggunakan String.find yang pada asyik mengembalikan kecocokan atau nol. Pada nol, kami menggunakan operator elvis ?:untuk mengembalikan kata yang diakhiri dengan atgantinya.

Mencetak:

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, rekursi, 74 byte

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

mencetak teks dari jawaban pertama dan kemudian melempar PatternFormatException. Kami menyebut penutupan secara rekursif dimulai dengan 'A' dan bertambah++char hingga karakter setelah Zmelempar kesalahan.

Groovy, dengan curang, 77 byte

Dengan risiko digantung:

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

yaitu membaca data di halaman ini dan mencetak definisi dari jawaban yang valid di awal. Dalam pembelaan saya ... itu mencetak jawaban yang diminta ... sekarang tidak ada yang mengedit halaman ...

Groovy, menggunakan 'times', 81 byte

Membangun jawaban python dengan pola kata tiga huruf:

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

cetakan:

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

Groovy, dengan berulang pada main (...), 83 byte

Dengan asumsi kami menghitung baris baru sebagai satu karakter.

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

mencetak teks dari jawaban pertama dan kemudian melempar PatternSyntaxException.

Groovy, masing-masing menggunakanIndex, 88 byte

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

Groovy, menggunakan transpose, 102 byte

['A'..'Z','niooaauusoioaiuaaoiineeaei'as List].transpose().each{println it[0]+" is for ${it.join()}t"}
Matias Bjarland
sumber
Kat adalah kata yang valid, sehingga Anda dapat menghapus kasus khusus untuk kit.
Business Cat
diedit, terima kasih. Menyelamatkan saya 3 byte
:)
2

05AB1E , 77 byte

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

Cobalah online!

Gunakan string berikut yang dikompresi:

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP

Dikonversi ke Base-214:

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

Menggunakan daftar kata-kata scrabble 3 huruf: http://wordfinder.yourdictionary.com/letter-words/3

Output adalah sebagai berikut:

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

Memiliki versi 70 byte, tetapi kata-kata 2 huruf tidak diizinkan.


Dijelaskan:

•‹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.
Guci Gurita Ajaib
sumber
quibukan kata bahasa Inggris. Mencari ini hanya mengungkapkan kata Latin.
mbomb007
@ mbomb007 seharusnya Quesaya tahu ada kata scrabble hukum 3 huruf, salah mengeja.
Magic Gurita Guci
Kata-kata yang bagus :) bisa diganti dengan ,.
Emigna
2

SmileBASIC, 131 113 82 81 byte

FOR I=1TO 26L$=CHR$(I+64)?L$;" is for ";L$;@niooaauusoioaiuaaoiineeaei[I];"t
NEXT

Sekarang menggunakan kata-kata yang masuk t

12Me21
sumber
Contoh output?
snail_
Ini sama dengan yang ini: codegolf.stackexchange.com/questions/109502/…
12Me21
2

Lithp , 136 125 117 byte

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

(Split untuk keterbacaan)

Cobalah online!

Ini cukup banyak port dari jawaban Python

  • Disimpan 11 byte dengan menggunakan eachindeks
  • Disimpan 8 byte dengan menghapus panggilan tidak berguna ke (scope #)

Keluaran:

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
Andrakis
sumber
2
Nama yang bagus! (Saya tidak tahu, apakah dari bahasa Inggris, apakah bahasanya ada bahasa seperti itu?)
Jonathan Allan
1
Terima kasih! Tidak, bahasanya baik-baik saja dengan pengucapan. Ini lebih dari itu adalah versi Lisp yang dibastardisasi. Saya baru saja menemukan Lisp terlalu sulit untuk membungkus kepala saya, Lithp adalah pendapat saya tentang itu dengan cara yang masuk akal bagi saya. Seharusnya lebih mudah dibaca daripada kebanyakan kode Lisp.
Andrakis
1

Batch, 250 byte

@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%

Karena saya tidak akan pernah mendapatkan skor yang layak, saya mencari kata - kata lucu terpendek yang dapat saya temukan:

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
Neil
sumber
1

ditumpuk , 72 byte

Ada dua untuk 72 byte!

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

Cobalah online! Menggunakan pola yang luar biasa itu. (Sebelum Anda bertanya, ++akan menjadi token tunggal, jadi+ + gunakan saja.)

Keduanya bekerja dengan beralih dari 65ke 90dan mendapatkan urutan karakter yang benar. Catatan:

  • #: adalah alias untuk chr
  • # adalah alias untuk get
  • {!...}sama dengan { n : ... }(lambda dengan nsebagai parameter)

Untuk 73 byte:

'niooaauusoioaiuaaoiineeaei'toarr{e i:65 i+#::' is for '+\e+'t'+ +out}map
Conor O'Brien
sumber
1

Mathematica 93 Bytes

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

hasil panen

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
Kelly Lowder
sumber
1

Groovy, 72 byte

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

Keluaran

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
Peter De Bruycker
sumber
1

Python 3, 145 137 135 byte

Saya mengorbankan beberapa byte untuk pseudo-randomise output dengan setiap kali dijalankan. Idenya adalah untuk mencari kata-kata huruf kecil dari minimal 3 karakter /usr/share/dict/wordsdan kemudian memilih satu dari daftar itu menggunakan 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])

Suntingan

  • Dihapus title()karena kata-kata tidak harus ditulis dengan huruf besar.
  • Mengubah regex menjadi "\n(%c.{3,})"(+ 3 byte) untuk memungkinkan penghapusan ,re.M(- 5 byte).

Contoh output:

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
PidgeyDigunakanGust
sumber
Tidak yakin semuanya valid. Misalnya, saya tidak dapat menemukan definisi untuk Qohele, meskipun pencarian mengungkapkan bahwa itu adalah buku atau volume teks suci.
Andrakis
1
Hanya perhatikan bahwa regex saya tidak cocok sampai akhir setiap kata - akan diperbaiki.
PidgeyDigunakanGust
Memperbaikinya. Sekarang hanya mencari huruf kecil, kata-kata lengkap untuk tidak memiliki nama di sana.
PidgeyDigunakanGust
1

GNU sed, 81 + 1 (r flag) = 82 byte

Ini adalah implementasi sed dari daftar kata dari jawaban Jonathan Allan .

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

Kata-kata tersebut, kecuali huruf akhir yang dibagikan t, diberikan dalam bentuk gabungan pada baris 1, dan kemudian dicetak dalam format yang diminta oleh baris 2. Ada baris tambahan yang mengikuti.

Jalankan :

sed -rf alphabet_song.sed <<< ""
seshoumara
sumber
1

Java 7, 124 121 byte

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

Berdasarkan jawaban @JonathanAllen , karena Java tidak memiliki kamus bawaan yang mewah. ;) Saya mencoba menemukan huruf akhir lain untuk seluruh alfabet (seperti satau natau y), atau huruf tengah (seperti aatau e), tetapi sebagian besar hanya kehilangan satu atau dua kata, jadi saya akhirnya menggunakan tjuga. Kata-kata dipilih secara manual dari wordhippo.com .

Tidak Disatukan:

Coba di sini.

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

Keluaran:

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
Kevin Cruijssen
sumber
1
+1 untuk +a+++. Saya suka menulis itu: P
Poke
1

PHP, 91 87 86 76 byte

berdasarkan daftar kata Jonathan Allan :

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

versi yang lebih lama, 86 byte:

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

atau

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

Jalankan dengan -nr.

keluaran

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

Untuk kata-kata aneh, lihat jawaban Ismael

Titus
sumber