Tạo một bài hát bảng chữ cái


55

Mục tiêu của bạn là tạo ra một bài hát bảng chữ cái dưới dạng văn bản theo mẫu sau (theo thứ tự):

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>

Ví dụ đầu ra:

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

Quy tắc:

  • Mỗi "chữ cái" của bài hát có một dòng riêng, vì vậy có 26 dòng và một dòng cấp có thể có.

  • Đầu ra là trường hợp nhạy cảm:

    • Chữ cái ở đầu mỗi dòng phải được viết hoa.
    • is for là chữ thường.
    • Từ được chọn không cần viết hoa, nhưng có thể. Tất cả các dòng nên được nhất quán.
  • Từ được chọn cho mỗi dòng tùy thuộc vào bạn, nhưng phải là một từ tiếng Anh hợp lệ có ít nhất 3 chữ cái và nó không thể là từ kết hợp (như andhoặc but), xen kẽ / cảm thán (như heyhoặc yay), viết tắt (như XLS) hoặc a tên (như Jon).

  • Mặc dù tôi nghi ngờ bất cứ ai sẽ thấy nó ngắn hơn, tôi thấy việc sử dụng một cụm từ thay vì một từ duy nhất có thể chấp nhận được. Vì vậy, nếu vì lý do nào đó S is for Something smells fishy...ngắn hơn, đi cho nó.

  • Đặt đầu ra của chương trình vào câu trả lời của bạn hoặc ít nhất là danh sách các từ bạn đã sử dụng (nếu có liên kết để chạy mã của bạn trực tuyến, chúng tôi không cần phải xem toàn bộ đầu ra).

  • Mã ngắn nhất sẽ thắng


Thử thách này được lấy cảm hứng từ video này .


Tôi đoán tiếng lóng không được phép, ngay cả khi được liệt kê trong từ điển thích hợp? (ví dụ: "Khi cô ấy nhận ra mình đang hướng về vùng hẻo lánh một lần nữa, cô ấy chỉ rút ra một uey !")
Jonathan Allan

1
Đưa ra một số câu trả lời, bài hát này của Barenaken Ladies có vẻ phù hợp.
admBorkBork

1
@Jonathan ALLan Không có tiếng lóng. Từ điển chứa rất nhiều thứ không phải là từ ngữ kỹ thuật. Chữ viết tắt là một, tiếng lóng là một.
mbomb007

4
Thật tệ khi điều này đã chuyển thành tìm 3 chữ cái kết thúc trong cùng một chữ cái.
12Me21

1
Có một vài câu trả lời bằng một từ điển bên ngoài. Họ có nên thêm kích thước của tập tin đó vào mã của họ không?
đường ống

Câu trả lời:


3

SOGL 0.8.1 , 60 32 byte

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

Giải trình:

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

Đây là câu trả lời của Jonathan Allan khá nhiều , nhưng được chuyển sang ngôn ngữ này.

Phiên bản cũ: (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)

đầu ra:

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

Đây không phải là ngắn nhất mà ngôn ngữ này có thể làm, nhưng nên là tốt nhất với các từ được mã hóa cứng.


57

Bash (+ lõi), 81, 87, 82, 78 byte

Sử dụng trang man cho X , làm nguồn từ.

Chơi gôn

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

EDITS

  • Đã sử dụng trang man 'xyst' không tồn tại + |&để lưu 5 byte;
  • Đã lưu thêm 4 byte, bằng cách hoán đổi sedsắp xếp .

Kiểm tra

%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
Là từ lsof và xregs? :)
OldBunny2800

1
@ OldBunny2800 nên được sửa ngay bây giờ
zeppelin

2
Tôi đã tra cứu nó, và vâng, xyst là một từ thực sự. :)
OldBunny2800

3
Có vẻ như những đứa trẻ sẽ học được một số từ lớn. : D
mbomb007

1
@Jonathan ALLan Thật không may, trang man cho "x" không có sẵn trên TIO, nhưng đây là một liên kết tio.run/nexus/ Kẻ , sử dụng "man man" thay thế. Thủ thuật với xystman xyst sẽ phàn nàn rằng "Không có mục nhập thủ công cho xyst" đối với thiết bị xuất chuẩn |&, sau đó được hợp nhất vào thiết bị xuất chuẩn , do đó nó có thể được ghép lại.
zeppelin

33

Python 2 , 88 77 byte

-11 byte nhờ xnor (tránh zip bằng cách duyệt qua chuỗi và đếm ctừ 65)

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

Hãy thử trực tuyến!

(Một cổng của câu trả lời Jelly của tôi, khi đó là 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

4
Tôi thích phương pháp của các từ kết thúc bằng t. Lặp lại có thể được rút ngắn bằng cách cập nhật xsong song .
xnor

Rất thông minh, như mọi khi; cảm ơn!
Jonathan Allan

1
Có gì Unt? Không thể tìm thấy cái đó ở bất cứ đâu
Albert Renshaw

Tôi không nghĩ Untlà một từ, nhưng Utvì vậy bạn có thể thay thế nbằng nghĩa đen của mình \0để làm cho từ này hợp lệ và chỉ thêm vào một byte nữa. Chỉnh sửa quy tắc Nevermind nói rằng nó phải dài 3 chữ cái ... hmmm
Albert Renshaw

4
@AlbertRenshaw Một người không phải là nốt ruồi châu Âu theo Merriam-Webster . Một thay thế sẽ là ult theo Wiktionary, nó không chỉ là một từ viết tắt (được liệt kê với các dấu chấm , chẳng hạn như ult. ).
Jonathan Allan

31

Bash, 78, 69 byte

Aardvarks, Babushkas và Kamikazes!

Chơi gôn

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

EDITS

  • Loại bỏ grep, -9 byte

Kiểm tra

%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

Làm cho việc sử dụng / usr / share / dict / words :

words là một tệp tiêu chuẩn trên tất cả các hệ điều hành giống Unix và Unix, và chỉ đơn giản là một danh sách các từ điển được phân định bằng dòng mới. Nó được sử dụng, ví dụ, bởi các chương trình kiểm tra chính tả.


14

PowerShell , 150 141 117 75 byte

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

Hãy thử trực tuyến!

Vòng lặp từ 65đến 90(nghĩa là ASCII Ađến Z). Mỗi lần lặp, chúng ta biến số nguyên thành số thích hợp char(nghĩa là ASCII 65cho A), lưu số đó vào $iđể sử dụng sau, nối chuỗi đó với is for $i, sau đó giải quyết ở giữa từ thích hợp. Điều đó được thực hiện bằng cách lập chỉ mục thành một chuỗi dài (mượn từ câu trả lời của Jonathan Allan ). Kết thúc với các chữ cái tđể làm cho ba chữ cái.

Các chuỗi kết quả là tất cả còn lại trên đường ống và một ẩn Write-Outputở cuối in chúng với các dòng mới ở giữa.

Đã lưu một loạt byte nhờ vào danh sách từ Rod
Borrowed từ câu trả lời của Jonathan Allan


bạn có thể xóa chữ cái đầu tiên của mỗi từ (chữ hoa) và in bằng [char]$ ví dụ
Rod

@Rod Cảm ơn. Tôi đã kết hợp với những gì tôi vừa làm để thay đổi cách tính vòng lặp và cách lập chỉ mục được tính toán và lưu lại một số chi tiết.
admBorkBork

13

Thạch , 39 byte

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

Dùng thử trực tuyến!

Dựa trên phiên bản 56 byte (hai bên dưới), nhưng đã thay đổi các từ để loại bỏ tất cả các chữ cái ở giữa "u"để nó có thể lập chỉ mục thành từ trong từ điển "anisole"*, điều này thuận tiện cho việc có các chữ cái chúng ta cần ở các chỉ mục nhỏ hơn sáu: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(lưu ý "e"bên phải là chỉ số 0 [cũng 7 và -7 và bất kỳ số nào khác đồng dạng với 0 mod 7]). Nó cũng sớm trong từ điển vì vậy chỉ có hai chứ không phải là chỉ số tra cứu ba byte phổ biến hơn nhiều ( "anisogamete"cũng sẽ hoạt động cho 2).

* Tên trường học cũ của ether methoxybenzene thơm, thường được sử dụng trong nước hoa.

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

Làm sao?

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

Trước 46

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

Tất cả các từ đều có chữ cái thứ hai "s" hoặc "a" và chữ cái cuối cùng "p" hoặc "t" bằng cách sử dụng tra cứu bốn cơ sở trong một sản phẩm của Cartesian là "sa" và "pt". Ngoại trừ từ "U", mã mà thay đổi thành "Sử dụng" (sử dụng tương đối cồng kềnh F”e272¦ở cuối) - nếu tôi có thể tìm thấy một danh sách từ như thế này không có ngoại lệ như vậy, chúng tôi sẽ xem xét 39 byte .

Danh sách các từ:

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

thử cái này


56 byte trước

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

Danh sách các từ:

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

Nó được định dạng, cho nó đi


Trước đó, 83 byte

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

... chúng ta hãy chơi "Phát hiện lá thư nào không có động vật!" có một, và chỉ một - coi chừng cá trích đỏ (một lời nói dối, cá trích đỏ là xenon, một yếu tố, rõ ràng không phải là động vật) , là hai từ năm chữ cái ở đây không phải là động vật (xenon là một) :

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

(tất nhiên điều này được định dạng chính xác, hãy thử nó - tôi chỉ nghĩ rằng tôi sẽ tiết kiệm không gian)


Xenonkhông phải là động vật. Tôi chắc chắn rằng bạn đã làm một trò đùa bằng cách có H is for Herring, nhưng tôi đoán là không.
mbomb007

Heh, đó là một lời nói dối. Xenon là một điều hiển nhiên :)
Jonathan Allan

Tôi nghĩ rằng họ đang nghĩ về xenop , không có trong từ điển của Jelly.
Jonathan Allan

Ý tưởng tuyệt vời! Nhưng Uutsao?
Greg Martin

@GregMartin Tôi đồng ý, tôi nghĩ rằng bạn đã bắt đầu phân chia các từ của bạn thành tiếng lẩm bẩm âm tiết.
Bạch tuộc ma thuật Urn

10

Võng mạc , 89 87 byte

Đã lưu 2 byte nhờ Martin Ender


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

m`$
t

Hãy thử trực tuyến!

Tôi chọn một từ cho mỗi chữ cái kết thúc bằng t(một số khá tối nghĩa).

Giải trình


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

Thay thế đầu vào không tồn tại (trống) bằng văn bản ở trên.

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

Thay thế mỗi chữ in hoa bằng (newline)(itself) is for (itself). Điều này dẫn đến văn bản trên được chia thành các dòng riêng biệt như

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

... và cứ thế

^¶
​

Tuy nhiên, vì dòng mới được đặt trước mỗi thủ đô, nên có một dòng mới hàng đầu phải được loại bỏ. Nó được loại bỏ trong giai đoạn này.

m`$
t

Đặt một tở cuối mỗi dòng, vì mỗi từ được sử dụng trong bài hát kết thúc t.


Bạn không cần phải viết chữ hoa. Chỉ cần sử dụng $&hoặc $0thay vì $1. Trên thực tế điều đó cũng có thể lưu byte qua giai đoạn phân chia của tôi.
Martin Ender

@MartinEnder Cảm ơn. Làm gì $&chính xác? Tôi đã không nhìn thấy nó trên wiki GitHub.
Mèo kinh doanh

Đó là một bí danh cho $0(và nó chỉ là một phần của hương vị .NET, cũng như hầu hết các hương vị khác).
Martin Ender

Sử dụng một số từ ngắn hơn để giảm xuống còn 83, hãy thử trực tuyến
Jonathan Allan

8

Võng mạc , 92 88 byte

Đã lưu 4 byte bằng cách mượn ý tưởng từ câu trả lời của Business Cat .

Số lượng byte giả định mã hóa ISO 8859-1.


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

Hãy thử trực tuyến!

Dựa trên danh sách từ của admBorkBork , nhưng tôi đã thay đổi thêm một vài từ thành những từ kết thúc adđể lưu nhiều byte hơn trên hậu tố chung.

Giải trình


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

Biến đầu vào trống (không tồn tại) thành chuỗi này. Nó chứa tất cả các chữ cái cũng như phần còn lại của những từ không kết thúc ad.

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

Chèn một dòng cấp trước mỗi chữ cái viết hoa và sau đó biến nó thành X is for X.

m` .$
$&ad

Ghép các chữ cái mà bây giờ là chính chúng và nối thêm adđể hoàn thành các từ rút gọn.

G`.

Hủy bỏ dòng trống đã được tạo bằng cách chèn một nguồn cấp dữ liệu trước đó A.


8

PHP, 122 124 127 120 115 101 byte

Theo <letter><filler>tcấu trúc "tiêu chuẩn" .
Tôi đã cố gắng đưa ra những từ mà trước đây không ai sử dụng.
Nếu bạn thấy một từ mà bạn muốn tôi thay thế, hãy nói với tôi.

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

Dòng mới được biểu diễn dưới dạng \nnhưng được tính là 1 byte.


Đầu ra:

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

Những từ kỳ lạ:

  • ikat :

    Ikat, hay ikkat, là một kỹ thuật nhuộm được sử dụng để tạo hoa văn cho hàng dệt có khả năng chống nhuộm trên sợi trước khi nhuộm và dệt vải.

  • xat :

    Một cây sào được dựng lên như một đài tưởng niệm người chết của một số người Ấn Độ ở phía tây Bắc Mỹ

  • zit :

    nổi mụn; nhược điểm da.

  • qat :

    Catha edulis (khat, qat) là một loài thực vật có hoa có nguồn gốc từ vùng Sừng châu Phi và bán đảo Ả Rập.


Giải pháp thông minh Tôi sẽ làm một cái gì đó tương tự, vui mừng khi thấy điều này! +1
Albert Renshaw

1
Đây không phải là những từ tiếng Anh ....
Conor O'Brien

@ ConorO'Brien Bạn có chắc không? PHP là tất cả được viết bằng tiếng Anh, theo như tôi biết.
Ismael Miguel

5
@IsmaelMiguel những thứ như vprintfzend_versionchắc chắn không phải là từ tiếng Anh. Rất ít trong số các thực thể này là từ ngữ.
Conor O'Brien

1
Tôi sẽ không gọi zitmột từ kỳ lạ, ít nhất, tôi nghĩ mọi người nên biết ý nghĩa của nó.
mbomb007

6

Pyke, 55 51 48 byte

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

Hãy thử nó ở đây!

Liên kết có độ dài 3 và không đủ điều kiện vì các từ bao gồm các từ kết hợp.

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

Đầu ra:

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

Bạn có thể kiểm tra điều này bên ngoài Pyke bằng thuật toán tương tự. Yêu cầu 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))

Không. Ngoài ra, tôi gặp lỗi khi chạy mã của bạn.
mbomb007

Timeout running code. BAD EVALHãy chắc chắn rằng bạn cập nhật liên kết "Dùng thử trực tuyến".
mbomb007

2
Z is for zoofiliaTôi sẽ nghiêm túc xem xét trước khi để con tôi hát bài này.
zeppelin


Đối với bất cứ ai thực hiện hai lần như tôi đã làm: tiếng Anh không phải lúc nào cũng được viết hoa. ;)
DLosc

6

Japt , 52 50 byte

Phối hợp với @ETHproductions

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

Chứa nhiều dấu vết. Kiểm tra nó trực tuyến!

Danh sách từ là:

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 sử dụng thư viện nén chuỗi shoco , giúp giảm các ký tự chữ thường thành một byte. Dưới đây là danh sách đầy đủ tất cả các lần chạy hai chữ cái được cô đọng thành một 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

Vì vậy, ý tưởng là tạo thành một từ với một trong các cặp này cho mỗi chữ cái của bảng chữ cái.

;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

Một điều thú vị cần lưu ý là trong khi Japt có thể giải nén hoàn toàn một chuỗi được bọc trong backticks, thì đó thực sự là một byte dài hơn ở đây bởi vì bạn phải lấy hai ký tự trong chuỗi được giải nén, thay vì một chuỗi.


6

05AB1E , 45 42 39 38 37 36 byte

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

Hãy thử trực tuyến!

Giải trình

Auđẩy bảng chữ cái viết hoa.
'Æåđẩy từ scenario.
•à¡P°€kš¦zᮕđẩy số cơ sở-10 36774474076746444766322426.
sử dụng các chữ số để lập chỉ mục vào scenario.
kéo các chuỗi đó lại với nhau vào danh sách[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

Các từ được sử dụng: ['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']

Phiên bản 33 byte sử dụng một số từ tôi không chắc chắn về

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

Từ ngữ: ['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 byte

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

Đầu ra:

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ất cả các từ có 3 chữ cái kết thúc bằng 't', hầu hết các từ có 'at'.

Sử dụng các từ gây tranh cãi (iat, dat, amp. Uump) - 55 byte:

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

Vẫn đang cố gắng tìm một mẫu, tôi nghĩ có thể sử dụng chỉ 2 kết thúc khác nhau và đơn giản hóa mọi thứ.

Cảm ơn @Value Ink và @Business cat đã giúp đỡ.


1
Qat và Xis (số nhiều của Xi ) là các từ, vì vậy bạn có thể sử dụng chúng và cũng giảm regex tra cứu của bạn xuống/#{l}../
Ink Ink

Cảm ơn, tôi đã suy nghĩ về một cái gì đó tương tự nhưng bây giờ tôi đang rời khỏi PC của tôi, tôi chắc chắn sẽ kiểm tra điều đó.
GB

Thật ra tôi đã cố gắng tìm một số từ 5 chữ cái cho các chữ cái còn thiếu: mảng, bài luận, inlay ... Nhưng tôi bị mắc kẹt về điều đó. :-(
GB

1
Kat là một từ hợp lệ, vì vậy bạn có thể loại bỏ trường hợp đặc biệt cho kit.
Mèo kinh doanh

1
Tôi đã nghĩ về "dat" và "zat" nhưng cả hai đều là cùng một từ (đó) và tiếng lóng, cả hai loại từ này đều bị cấm. "Amp" và "gump" dường như là chữ viết tắt của "ampere" / "khuếch đại" và "trọng tài". "IAT" là từ viết tắt, vì vậy điều đó cũng không tốt.
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

Dùng thử trực tuyến

Yob - n. - Một kẻ độc ác và tàn bạo

Hừm, hôm nay đã học được vài thứ ...


2
Ở Anh, một yob là một con báo, một tên côn đồ hoặc một người đàn ông; không lịch sự và ồn ào hơn tàn nhẫn và tàn bạo.
Jonathan Allan

1
Trong tiếng Nga "Yob" là một dạng động từ tục tĩu trong quá khứ, về cơ bản, nó tương đương với "f * ck" trong tiếng Anh. Bạn càng biết nhiều hơn ...
Ông Scapegrace

5

05AB1E , 72 68 byte

Mã số:

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

Sử dụng mã hóa CP-1252 . Hãy thử trực tuyến!

Giải trình

Các mã sau đây:

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

đẩy mảng này:

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

Và được xử lý bằng mã sau:

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

Bạn có thể giải thích tại sao điều đó đẩy mảng đó?
Bạch tuộc ma thuật Urn

Tôi nghĩ rằng 05AB1E có một số từ được xây dựng có thể được biểu thị bằng 2 byte trong một chuỗi.
12Me21

@ 12Me21 thật tuyệt! ”–³”=Appleint(–³,214)=23891tôi vẫn không thấy mối tương quan ở đây.
Bạch tuộc ma thuật Urn

Tôi tin rằng đây là danh sách: github.com/Adriandmen/05AB1E/blob/master/dipedia.py
12Me21

2
@carusocomputing Dưới đây là mô tả chi tiết hơn về cách hoạt động của quá trình nén và giải nén.
Ad Nam

5

Clojure, 159 232 byte

Chà, bây giờ chắc chắn là giải pháp không cạnh tranh vì việc mã hóa các từ được sử dụng sẽ dễ dàng hơn nhiều. Đưa nó ra ngoài chỉ để có câu trả lời đúng (và không sử dụng danh sách từ của người khác).

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

Về cơ bản vẫn nhận được tất cả các hàm được định nghĩa trong clojure.corekhông gian tên, nhưng sau đó đánh giá doc <function name>và đặt nó thành chuỗi. Sau đó nối nó thành một chuỗi lớn (có từ xyst) và tìm từ thích hợp từ đó. Nên được chạy trong Clojure REPL.

Đầu ra:

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

Giải pháp cũ:

(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, không orb, cho 1 byte.
wizzwizz4

1
Độ dài tối thiểu là 3 chữ cái
12Me21

@ mbomb007 cập nhật.
cliffroot

4

JavaScript (ES6), 82 byte

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

Một hàm ẩn danh trả về một chuỗi. Chứa không thể in được; đây là phiên bản không:

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

Điều này sử dụng kỹ thuật của @ JonathanAllen, chỉ sử dụng các từ có ba chữ cái kết thúc t. Chuỗi giải nén thành AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi.

Tôi đã thử xâu chuỗi hai chữ cái như vậy:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

Bây giờ tôi đã làm mọi cách để Xbị mắc kẹt Y; theo như tôi có thể nói, từ ba chữ cái duy nhất có thể đạt được XXis, và không có từ nào có ba chữ cái bắt đầu bằng Ys.

Đối với bản ghi, chuỗi đầy đủ là ceeeweeereueaebiueeiziais...


Theo Wiktionary, bạn có thể sử dụng uzitiz...
DLosc

@DLosc Ý tưởng tuyệt vời. Sau đó, bạn sẽ phải làm sei, skihoặc sri, mà lá bạn với ree, roe, rue, rye, mà lá bạn với ... ba lá thư chỉ q-words Tôi có thể tìm được qat, qisqua. Có một trang Wiktionary có nhiều từ ba chữ cái không?
Sản xuất ETH

Có một danh mục cho các từ có ba chữ cái, nhưng nó không phải là một danh sách đầy đủ. Chẳng hạn, nó không chứa que (mà tôi chỉ biết vì câu trả lời khác ở đây đã sử dụng nó). (Tuy nhiên, không chắc chắn có một từ pkết thúc bằng u.)
DLosc

@DLosc Tôi đã sử dụng piu, vì vậy đó không phải là vấn đề gì cả: P Cảm ơn!
Sản phẩm ETH

Hừm. piucó vẻ như đường biên giới đẹp - wiktionary không có tiếng Anh và dictionary.com có ​​nó như thế più(dunno cách chúng tôi xem xét các điểm nhấn cho thử thách này). Nhưng vâng, ys_sẽ là một vấn đề.
DLosc

3

Toán học, 97 byte

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

Nhìn vào Mathicala là WordListtừ thứ ba bắt đầu bằng mỗi chữ cái; điều này tránh các từ một chữ cái và các từ xen kẽ. Có một dòng mới 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

eep, hoàn toàn quên mất, cảm ơn
Greg Martin

3

Groovy, 76 73 byte

(được chỉnh sửa từ 76 đến 73 byte, cảm ơn bạn mèo)

Lấy cảm hứng từ giải pháp ruby:

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

chúng tôi sử dụng anythay vì mỗi cái vì nó ngắn hơn và tất cả các câu lệnh println trả về false. Đối với các trường hợp đặc biệt trong chuỗi, chúng tôi sử dụng String.find mà trong Groovy trả về kết quả khớp hoặc null. Trên null, chúng tôi sử dụng toán tử elvis ?:để trả về một từ kết thúc atthay thế.

In ra:

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, đệ quy, 74 byte

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

in ra văn bản từ câu trả lời đầu tiên và sau đó ném PatternFormatException. Chúng tôi gọi đóng cửa theo cách đệ quy bắt đầu bằng 'A' và tăng dần ++charcho đến khi ký tự sau khi Zném lỗi.

Groovy, bằng cách gian lận, 77 byte

Với nguy cơ bị buông lỏng:

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

tức là đọc dữ liệu trong trang này và in ra định nghĩa của câu trả lời hợp lệ ở đầu. Để bảo vệ tôi ... nó in ra câu trả lời được yêu cầu ... bây giờ không ai chỉnh sửa trang ...

Groovy, sử dụng 'lần', 81 byte

Xây dựng trên câu trả lời python với mẫu ba chữ cái:

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

in:

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, bằng cách đệ quy trên main (...), 83 byte

Giả sử chúng ta tính dòng mới là một ký tự.

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

in ra văn bản từ câu trả lời đầu tiên và sau đó ném PatternSyntaxException.

Groovy, sử dụng EachWith Index, 88 byte

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

Groovy, sử dụng chuyển vị, 102 byte

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

Kat là một từ hợp lệ, vì vậy bạn có thể loại bỏ trường hợp đặc biệt cho kit.
Mèo kinh doanh

chỉnh sửa, cảm ơn bạn. Đã lưu cho tôi 3 byte :)
Matias Bjarland

2

05AB1E , 77 byte

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

Hãy thử trực tuyến!

Sử dụng chuỗi sau đây được nén:

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSettITUSEVATWETXISYIPZAP

Chuyển đổi sang Base-214:

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

Đã sử dụng danh sách các từ viết nguệch ngoạc 3 chữ cái: http://wordfinder.yourdipedia.com/letter-words/3

Đầu ra như sau:

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

Có phiên bản 70 byte, nhưng các từ 2 chữ cái không được phép.


Giải thích:

•‹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.

quikhông phải là một từ tiếng Anh. Nhìn lên điều này chỉ tiết lộ một từ Latin.
mbomb007

@ mbomb007 đáng lẽ là Quetôi biết có một từ viết nguệch ngoạc hợp pháp gồm 3 chữ cái, viết sai chính tả.
Bạch tuộc ma thuật Urn

Những lời tốt đẹp :) có thể được thay thế bằng ,.
Emigna


2

Tiếng Litva , 136 125 117 byte

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

(Chia để dễ đọc)

Hãy thử trực tuyến!

Đây là khá nhiều cổng của câu trả lời Python

  • Đã lưu 11 byte bằng cách sử dụng eachchỉ mục của
  • Đã lưu 8 byte bằng cách xóa cuộc gọi vô dụng đến (scope #)

Đầu ra:

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
Tên tuyệt vời! (Tôi không, thuffer từ một linh thạch, doethe ngôn ngữ có thchech ithue mặc dù?)
Jonathan Allan

1
Cảm ơn bạn! Không, ngôn ngữ là tốt với phát âm. Thêm nữa đó là phiên bản khốn của Lisp. Tôi chỉ thấy Lisp quá khó khăn để quấn đầu mình, Litva là người đảm nhận nó theo cách có ý nghĩa với tôi. Nó sẽ dễ đọc hơn nhiều so với hầu hết mã Lisp.
Andrakis

1

Hàng loạt, 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%

Vì tôi sẽ không bao giờ đạt được số điểm kha khá, tôi đã tìm những từ hài hước ngắn nhất mà tôi có thể tìm thấy:

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

xếp chồng lên nhau , 72 byte

hai cho 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

Hãy thử trực tuyến! Sử dụng mô hình tuyệt vời đó. (Trước khi bạn hỏi, ++sẽ là một mã thông báo duy nhất, vì vậy + +được sử dụng thay thế.)

Cả hai hoạt động bằng cách lặp từ 65đến 90và nhận được chuỗi ký tự chính xác. Ghi chú:

  • #: là bí danh cho chr
  • # là bí danh cho get
  • {!...}giống như { n : ... }(lambda với ntham số)

Đối với 73 byte:

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

1

Toán học 93 byte

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

sản lượng

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 byte

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

Đầu ra

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

Trăn 3, 145 137 135 byte

Tôi đã hy sinh một số byte để giả ngẫu nhiên đầu ra với mỗi lần chạy. Ý tưởng là tìm kiếm các từ viết thường có ít nhất 3 ký tự /usr/share/dict/wordsvà sau đó chọn một từ trong danh sách đó bằng cách sử dụng 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])

Chỉnh sửa

  • Xóa title()như những từ không phải viết hoa.
  • Đã thay đổi regex thành "\n(%c.{3,})"(+ 3 byte) để cho phép loại bỏ ,re.M(- 5 byte).

Ví dụ đầu ra:

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

Không chắc chắn tất cả chúng đều hợp lệ. Chẳng hạn, tôi không thể tìm thấy một định nghĩa nào Qohele, mặc dù một tìm kiếm cho thấy đó là một cuốn sách hoặc tập văn bản thiêng liêng.
Andrakis

1
Chỉ cần lưu ý rằng regex của tôi không khớp cho đến khi kết thúc mỗi từ - sẽ sửa.
PidgeyUsedGust

Đã sửa nó. Bây giờ chỉ tìm chữ thường, từ hoàn chỉnh để không có tên trong đó.
PidgeyUsedGust

1

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

Đây là một triển khai sed của danh sách từ từ câu trả lời của Jonathan Allan .

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

Các từ, ngoại trừ thư kết thúc được chia sẻ t , được đưa ra ở dạng nối liền trên dòng 1, và sau đó được in ở định dạng được yêu cầu bởi dòng 2. Có một dòng mới.

Chạy :

sed -rf alphabet_song.sed <<< ""

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

Dựa trên câu trả lời của @Jonathan ALLen , vì Java không có từ điển tích hợp sẵn. ;) Tôi đã cố gắng tìm một chữ cái kết thúc khác cho toàn bộ bảng chữ cái (như shoặc nhoặc y), hoặc một chữ cái giữa (như ahoặc e), nhưng hầu hết đều bị thiếu chỉ một hoặc hai từ, vì vậy tôi cũng đã sử dụng t. Các từ được chọn thủ công từ wordhippo.com .

Ung dung:

Hãy thử nó ở đây.

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

Đầu ra:

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
+1 cho +a+++. Tôi thích viết những thứ đó: P
Poke

1

PHP, 91 87 86 76 byte

dựa trên danh sách từ Jonathan Allan's :

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

phiên bản cũ hơn, 86 byte:

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

hoặc là

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

Chạy với -nr.

đầu ra

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

Đối với những từ kỳ lạ, xem câu trả lời của Ismael

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.