알파벳 노래 만들기


55

목표는 다음 형식으로 알파벳 곡을 텍스트로 만드는 것입니다 (순서대로).

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>

출력 예 :

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

규칙 :

  • 노래의 각 "문자"에는 고유 한 회선이 있으므로 26 개의 회선과 가능한 후행 줄 바꿈이 있습니다.

  • 출력은 대소 문자를 구분합니다.

    • 각 줄의 시작 부분에있는 문자는 대문자 여야합니다.
    • is for 소문자입니다.
    • 선택한 단어는 대문자로 표기 할 필요는 없지만 가능할 수 있습니다. 모든 줄은 일관성이 있어야합니다.
  • 각 줄에서 선택한 단어는 귀하에게 달려 있지만 3 자 이상의 유효한 영어 단어 여야하며 연결 ​​(예 : and또는 but), 감탄사 / 느낌표 (예 : hey또는 yay), 약어 (예 :) XLS또는 a 이름 (같은 Jon).

  • 나는 누군가가 그것을 더 짧게 찾을 것이라고 의심하지만, 한 단어 대신 문구를 사용하는 것이 허용됩니다. 어떤 이유로 든 S is for Something smells fishy...짧아지면 가십시오.

  • 프로그램 출력을 답에 적어 두거나 최소한 사용한 단어 목록에 넣으십시오 (코드를 온라인으로 실행할 수있는 링크가있는 경우 전체 출력을 볼 필요는 없습니다).

  • 최단 코드 승리


이 도전은 이 비디오 에서 영감을 받았습니다 .


올바른 사전에 나열되어 있어도 속어가 허용되지 않는 것 같습니다. (예 : "그녀가 오지 향하고 있었다 깨달았을 때 다시 그녀는 그냥 뽑아 uey을 !")
조나단 앨런

1
몇 가지 답을 감안할 때 Barenaked Ladies 의이 노래 는 관련이있는 것 같습니다.
AdmBorkBork

1
@JonathanAllan 속어가 없습니다. 사전에는 기술적으로 단어가 아닌 많은 것들이 포함되어 있습니다. 약어는 하나, 속어는 또 다른 것입니다.
mbomb007

4
이것은 같은 문자로 끝나는 3 개의 단어를 찾는 데 너무 나쁘다.
12Me21

1
외부 사전을 사용하여 몇 가지 답변이 있습니다. 파일 크기를 코드에 추가하지 않아도됩니까?
파이프

답변:


3

SOGL 0.8.1 , 60 32 바이트

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

설명:

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

이것은 Jonathan Allan의 대답 과 거의 같지만이 언어로 포팅되었습니다.

이전 버전 : (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)

산출:

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

이것은이 언어가 할 수있는 가장 짧은 것이 아니라 하드 코딩 된 단어에 가장 적합해야합니다.


57

배쉬 (+ coreutils), 81, 87, 82, 78 바이트

X 의 맨 페이지를 단어의 소스로 사용합니다 .

골프

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

EDITS

  • 존재하지 않는 'xyst'맨 페이지 + |&를 사용하여 5 바이트를 절약했습니다.
  • sedsort 를 교환하여 4 바이트를 더 절약했습니다 .

테스트

%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와 xregs는 단어입니까? :)
OldBunny2800

1
@ OldBunny2800 이제 수정되어야합니다
비행선

2
나는 그것을 찾았고, xyst는 진짜 단어입니다. :)
OldBunny2800

3
아이들이 큰 단어를 배우는 것 같습니다. : D
mbomb007 17

1
@JonathanAllan 불행히도, "x"에 대한 매뉴얼 페이지는 TIO에서 사용할 수 없지만, 여기에 "man man"을 사용 하는 링크 tio.run/nexus/…가 있습니다. xyst 의 속임수 는 man xyst 가 stderr에 "xyst에 대한 수동 항목이 없음"이 있다고 불평 한 다음 stdout과 병합되어 grep |&될 수 있다는 것입니다.
zeppelin

33

파이썬 2 , 88 77 바이트

xnor 덕분에 -11 바이트 (문자열을 통과하고 c65부터 카운트하여 zip을 피함 )

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

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

(56 바이트 때 내 젤리 답변의 포트.)

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로 끝나는 단어의 방법을 좋아합니다. 병렬업데이트 x하여 반복을 단축 할 수 있습니다 .
xnor

그 어느 때보다도 매우 똑똑합니다. 감사!
Jonathan Allan

1
무엇입니까 Unt? 어디서나 찾을 수 없음
Albert Renshaw

나는 Unt단어 가 아니라고 생각 하지만 리터럴을 Ut대신하여 이것을 유효하게하고 하나 이상의 바이트를 추가 할 수 있습니다 . 규칙은 ... 그것은 3 자 이내 여야한다라고 흠 신경 끄시 편집n\0
알버트 렌쇼

4
@AlbertRenshaw Merriam-Webster 에 따르면 이모는 유럽 사마귀 입니다. 대안은 위키 낱말 사전 에 따르면 ult 와 같이 마침표로 표시되는 단순한 약어가 아닙니다 .
Jonathan Allan

31

세게 때리다, 78, 69 바이트

Aardvarks, Babushkas 및 Kamikazes!

골프

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

EDITS

  • grep을 제거했습니다 -9 바이트

테스트

%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

사용하게 는 / usr / share / DICT / 단어 :

단어는 모든 유닉스 및 유닉스 계열 운영 체제의 표준 파일이며 줄 바꿈으로 구분 된 사전 단어 목록입니다. 예를 들어 철자 검사 프로그램에서 사용됩니다.


14

PowerShell에서 , (150) 141 (117) 75 바이트

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

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

에서 65에서 90(즉, ASCII에서 AZ) 반복합니다 . 각 반복마다 정수를 적절한 것으로 바꾸고 char(즉, ASCII 65for A) $i나중에 사용할 수 있도록 저장 하고을 문자열로 연결 is for $i한 다음 적절한 단어의 중간에 붙입니다. 그것은 긴 문자열 ( Jonathan Allan의 대답 에서 차용)으로 색인화하여 수행됩니다 . 문자로 끝마친 t세 글자 단어를 만들기 위해.

결과 문자열은 모두 파이프 라인에 남아 Write-Output있으며 끝에 암시 적 으로 그 사이에 줄 바꿈이 표시됩니다.

Jonathan Allan의 답변 에서 Rod Borrowed 단어 목록 덕분에 많은 바이트를 절약했습니다.


각 단어의 첫 글자 (대문자)를 제거하고 [char]$
Rod

@로드 감사합니다. 루프 계산 방법과 인덱싱 계산 및 저장 방법을 변경하기 위해 방금 작업 한 내용과 결합했습니다.
AdmBorkBork

13

젤리 , 39 바이트

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

TryItOnline!

56 바이트 버전 (아래 2 개)을 기반으로하지만 모든 중간 문자를 제거하도록 단어를 변경 "u"하여 사전 단어 "anisole"* 로 색인을 생성 할 수 있습니다 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e. "e"오른쪽에 인덱스 0이 있습니다 [7 및 -7 및 0 mod 7에 부합하는 다른 숫자]). 또한 사전의 초기 단계이므로 훨씬 일반적인 3 바이트 조회 색인이 아닌 2 개만 있습니다 (2 "anisogamete"에서도 작동합니다).

* 향수에 종종 사용되는 방향족 에테르 메 톡시 벤젠의 구식 이름.

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

어떻게?

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

이전, 46

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

단어는 모두 "sa"및 "pt"의 데카르트 곱에서 기본 4 조회를 사용하여 두 번째 문자 "s"또는 "a"와 마지막 문자 "p"또는 "t"를 갖습니다. 코드가 "사용"으로 변경되는 "U"단어를 제외하고 ( F”e272¦종료 적 으로 비교적 큰 부피 를 사용함 )-이와 같은 예외가없는 이와 같은 단어 목록을 찾을 수 있으면 39 바이트를 볼 것 입니다.

단어 목록:

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

이거 한번 해봐


이전 56 바이트

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

단어 목록:

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

형식화되어 있습니다.


이전, 83 바이트

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

... 놀이를하자. 「편지에는 동물이없는 자리!」거기에 하나, 오직 하나 - 붉은 청어 조심 (거짓말, 붉은 청어 분명히 요소가 아닌 동물 인 크세논이었다) , 2 ~ 5 글자 단어는 (하나되는 크세논) 동물이 아니라는 것을 여기에 있습니다 :

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

(물론이 형식이 올바르게 지정되었습니다. 공간을 절약 할 것이라고 생각 했습니다 )


Xenon동물이 아닙니다. 나는 당신이 농담을하고 있다고 확신 H is for Herring했지만 그렇지는 않습니다.
mbomb007

허, 그것은 거짓말이었다. 크세논은 명백한 사람이었다 :)
Jonathan Allan

나는 그들이 젤리 사전에없는 xenop을 생각하고 있다고 생각 합니다.
Jonathan Allan

멋진 생각입니다! 하지만 Uut?
Greg Martin

@GregMartin 동의합니다. 당신의 말을 음절로 바꾸기 시작했다고 생각합니다.
Magic Octopus Urn

10

망막 , 89 87 바이트

Martin Ender 덕분에 2 바이트 절약


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

m`$
t

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

나는 각 문자로 끝나는 단어를 골랐다 t(일부는 꽤 모호하다).

설명


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

존재하지 않는 (빈) 입력을 위의 텍스트로 바꿉니다.

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

각 대문자를로 바꿉니다 (newline)(itself) is for (itself). 위의 텍스트는 다음과 같이 별도의 줄로 나뉩니다.

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

... 등등

^¶
​

그러나 개행은 각 수도 앞에 배치 되었으므로 제거해야하는 선행 개행이 있습니다. 이 단계에서 제거됩니다.

m`$
t

t노래에 사용 된 모든 단어가로 끝나기 때문에 모든 줄의 끝에 a 를 넣으십시오 t.


대문자를 캡처 할 필요가 없습니다. 대신 $&또는 $0대신 사용하십시오 $1. 실제로 그것은 내 스플릿 스테이지에서 바이트를 절약 할 수 있습니다.
Martin Ender

@MartinEnder 감사합니다. 무엇 않습니다 $&정확히 무엇입니까? 나는 GitHub 위키에서 그것을 보지 못했다.
비즈니스 고양이

별명이며 $0.NET 풍미 및 다른 풍미의 일부일뿐입니다.
Martin Ender

짧은 단어를 사용하여 83로
Jonathan Allan

8

레티 나 , 92 88 바이트

Business Cat 's answer 에서 아이디어를 빌려 4 바이트를 절약했습니다 .

바이트 수는 ISO 8859-1 인코딩을 가정합니다.


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

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

AdmBorkBork의 단어 목록을 기반으로 하지만 ad공통 접미사에 더 많은 바이트를 절약하기 위해 몇 단어를 단어로 변경했습니다 .

설명


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

비어있는 (존재하지 않는) 입력을이 문자열로 바꿉니다. 여기에는 끝나지 않는 나머지 단어뿐만 아니라 모든 글자가 포함됩니다 ad.

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

각 대문자 앞에 줄 바꿈을 삽입 한 다음로 바꿉니다 X is for X.

m` .$
$&ad

이제 그 자체로 글자를 일치시키고 ad단축 단어를 완성하기 위해 추가하십시오 .

G`.

앞에 줄 바꿈을 삽입하여 만들어진 빈 줄을 버리십시오 A.


8

PHP, 122 124 127 120 115 101 바이트

"표준" <letter><filler>t구조를 따릅니다 .
나는 아무도 전에 사용하지 않은 단어를 생각해 보았습니다.
내가 바꾸고 싶은 단어가 보이면 말해주십시오.

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

줄 바꿈은 \n1 바이트로 표시 되지만 계산됩니다.


산출:

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

이상한 말 :

  • ikat :

    Ikat 또는 ikkat은 직물을 염색 및 제직하기 전에 얀에 레지스트 염색을 사용하는 직물을 패턴 화하는데 사용되는 염색 기술이다.

  • xat :

    북아메리카의 일부 인디언들이 죽은자를 기념하기 위해 세워진 조각 된 기둥

  • zit :

    여드름; 피부 결점.

  • qat :

    Catha edulis (khat, qat)는 아프리카의 뿔과 아라비아 반도에 서식하는 꽃 피는 식물입니다.


영리한 솔루션 나는 비슷한 일을 할 것입니다. +1
Albert Renshaw

1
영어 단어가 아닙니다 ....
Conor O'Brien

@ ConorO'Brien 확실합니까? 내가 아는 한 PHP는 모두 영어로 작성되었습니다.
Ismael Miguel

5
@IsmaelMiguel 은 영어 단어 vprintf와 같 으며 zend_version가장 확실하지 않습니다. 실제로 이러한 단어는 거의 없습니다.
Conor O'Brien

1
나는 zit이상한 단어를 부르지 않을 것입니다 . 적어도 모든 사람들이 이미 그 의미를 알아야한다고 생각합니다.
mbomb007

6

파이크, 55 51 48 바이트

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

여기 사용해보십시오!

링크의 길이는 3 자이며 단어에 결점이 포함되어 있지 않습니다.

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

출력 :

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

동일한 알고리즘을 사용하여 Pyke 외부에서이를 테스트 할 수 있습니다. 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))

또한 코드를 실행하는 동안 오류가 발생합니다.
mbomb007

Timeout running code. BAD EVAL"온라인으로 시도"링크를 업데이트하십시오.
mbomb007

2
Z is for zoofilia내 아이들이이 노래를 부르기 전에 진지하게 고려할 것입니다.
zeppelin


내가 한 것처럼 이중 복용을하는 사람에게는 영어 가 항상 대문자 인 것은 아닙니다. ;)
DLosc

6

Japt , 52 50 바이트

@ETHproductions와 협력

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

인쇄 할 수없는 항목이 많이 있습니다. 온라인으로 테스트하십시오!

단어 목록은 다음과 같습니다.

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는 shoco 문자열 압축 라이브러리를 사용하여 소문자의 일반적인 실행을 바이트 단위로 줄입니다. 다음은 1 바이트로 압축 된 모든 2 문자 실행의 전체 목록입니다.

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

따라서 아이디어는 알파벳의 각 문자에 대해이 쌍 중 하나를 사용하여 단어를 형성하는 것입니다.

;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

주목해야 할 한 가지 흥미로운 점은 Japt이 백틱으로 묶인 문자열을 암시 적으로 압축 해제 할 수 있지만 압축 해제 된 문자열에서 두 개의 문자 를 가져 오는 것이 아니라 실제로는 1 바이트가 더 길다 는 것입니다.


6

05AB1E , 45 42 39 38 37 36 바이트

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

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

설명

Au대문자 알파벳을 푸시합니다.
'Æå단어를 푸시합니다 scenario.
•à¡P°€kš¦zᮕ밑이 10 인 숫자를 누른다 36774474076746444766322426.
해당 숫자를 사용하여에 색인을 생성합니다 scenario.
해당 문자열을 목록으로 압축[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

사용 된 단어 : ['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']

확실하지 않은 단어를 사용하는 33 바이트 버전

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

말: ['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

루비, 93 84 69 63 58 62 바이트

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

산출:

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'로 끝나는 모든 3 글자 단어, 대부분 'at'로 끝나는 단어.

논쟁의 여지가있는 단어 사용 (iat, dat, amp. ump)-55 바이트 :

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

여전히 패턴을 찾으려고 노력하면서 2 개의 다른 엔딩을 사용하고 모든 것을 단순화 할 수 있다고 생각합니다.

도움을 주신 @Value Ink와 @Business cat에 감사드립니다.


1
QatXis (복수의 Xi )는 단어이므로이를 사용하여 조회 정규 표현식을 다음과 같이 줄일 수 있습니다./#{l}../
Value Ink

고마워, 나는 비슷한 것을 생각하고 있었지만 지금은 내 PC에서 떨어져 있습니다. 나는 그것을 확실히 확인할 것입니다.
GB

실제로 나는 누락 된 문자에 대해 약 5 글자 단어를 찾으려고 노력했습니다 : 배열, 에세이, 상감 ... 그러나 나는 그것에 붙어 있습니다. :-(
GB

1
Kat 은 유효한 단어이므로에 대한 특수 사례를 제거 할 수 있습니다 kit.
비즈니스 고양이

1
나는 "dat"와 "zat"에 대해 생각했지만 그것들은 같은 연결 (그것)과 속어이다. "amp"및 "ump"는 "ampere"/ "amplify"및 "umpire"의 약어 인 것 같습니다. "IAT"는 약어이므로 좋지 않습니다.
Jonathan Allan

6

///, 163 바이트

/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

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

b-n. -잔인하고 잔인한 사람

흠, 오늘 뭔가를 배웠어요 ...


2
영국에서 b은 시끄 럽거나 깡패 또는 멍청이입니다. 잔인하고 잔인한 것보다 더 무례하고 난폭하다.
Jonathan Allan

1
러시아어에서 "Yob"은 과거 형태의 외설 동사의 축약 형으로, 기본적으로 영어의 "f * ck"와 같습니다. 더 많이 알면 ...
Mr Scapegrace

5

05AB1E , 72 68 바이트

암호:

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

CP-1252 인코딩을 사용합니다 . 온라인으로 사용해보십시오!

설명

다음 코드 :

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

이 배열을 푸시합니다.

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

그리고 다음 코드를 사용하여 처리됩니다.

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

왜 그 배열을 밀어 넣는 지 설명 할 수 있습니까?
Magic Octopus Urn

05AB1E에는 문자열에서 2 바이트로 표현할 수있는 내장 단어가 있다고 생각합니다.
12Me21

@ 12Me21 멋지다! ”–³”=Apple그리고 int(–³,214)=23891하지만 난 아직 여기의 상관 관계를 볼 수 없습니다.
Magic Octopus Urn

나는 이것이 목록이라고 믿는다 : github.com/Adriandmen/05AB1E/blob/master/dictionary.py
12Me21

2
@carusocomputing 다음 은 압축 및 압축 해제 방법에 대한 자세한 설명입니다.
Adnan

5

클로저, 159232 바이트

글쎄, 이제는 사용 된 단어를 하드 코딩하는 것이 훨씬 쉬우므로 확실히 경쟁이 아닌 솔루션입니다. 정답을 얻기 위해 (그리고 다른 사람들의 단어 목록을 사용하지 않기 위해) 거기에 두십시오 .

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

기본적으로 여전히 clojure.core네임 스페이스에 정의 된 모든 함수를 가져 오지만 그 후에는 평가 doc <function name>하여 문자열에 넣습니다. 그 후 그것을 하나의 거대한 문자열로 연결합니다 (단어와 함께xyst ) 거기에서 적절한 단어를 찾습니다. Clojure REPL에서 실행해야합니다.

산출:

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

오래된 해결책 :

(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아니라 orb, 1 바이트.
wizzwizz4

1
최소 길이는 3 글자입니다
12Me21

@ mbomb007가 업데이트되었습니다.
cliffroot

4

자바 스크립트 (ES6), 82 바이트

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

문자열을 반환하는 익명 함수 인쇄 할 수없는 것을 포함합니다. 여기에없는 버전이 있습니다 :

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

이것은 @JonathanAllen의 기술을 사용하며로 끝나는 3 글자 단어 만 사용합니다 t. 문자열이로 압축 해제됩니다 AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi.

두 글자 쌍을 체인으로 연결하려고했습니다.

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

나는 지금까지 그것을 끝까지 X만들었지 만 멈췄다 Y. 내가 알 수있는 한, 달성 할 수있는 유일한 3 글자 X단어는 Xis이며로 시작하는 3 글자 단어는 없습니다 Ys.

기록을 위해 전체 문자열은 ceeeweeereueaebiueeiziais...


위키 낱말 사전에 따르면, 당신이 사용할 수 uzitiz...
DLosc

@DLosc 좋은 생각입니다. 그럼 당신은해야 할 것 sei, ski또는 sri당신을 잎하는, ree, roe, rue, rye,와 ... 만 세 편지를 남긴다하는 q-words 내가 찾을 수있는 수 qat, qisqua. 더 많은 3 글자 단어가있는 위키 낱말 사전 페이지가 있습니까?
ETHproductions

3 글자 단어 의 범주 가 있지만 전체 목록은 아닙니다. 예를 들어, que를 포함하지 않습니다 (여기서 다른 대답이 사용했기 때문에 알고 있습니다). ( 하지만로 p끝나는 u
단어

@DLosc 나는 이미을 사용 piu하고 있었으므로 전혀 문제가되지 않습니다 : P 감사합니다!
ETHproductions

흠. piu위키 낱말 사전에는 영어로되어 있지 않으며 dictionary.com에는 più(우리가이 도전에 대한 악센트를 어떻게 고려하고 있는지) 몰랐습니다 . 하지만 ys_문제가 될 것입니다.
DLosc

3

수학, 97 바이트

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

Mathematica에서 WordList각 문자로 시작하는 세 번째 단어를 찾습니다. 이것은 한 글자로 된 단어와 방해를 피합니다. 추적 줄 바꿈이 있습니다.

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, 완전히 잊어 버린 감사
Greg Martin

3

그루비, 76 73 바이트

(76에서 73 바이트로 편집, 고양이 감사합니다)

루비 솔루션에서 영감을 얻었습니다.

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

우리는 사용 any 는 더 짧고 모든 println 문은 false를 반환하기 때문에 각각 대신에 합니다. 문자열의 특수한 경우에는 Groovy에서 일치 또는 null을 반환하는 String.find를 사용합니다. null이면 elvis 연산자 ?:를 사용하여 at대신 끝나는 단어를 반환합니다 .

인쇄합니다 :

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

그루비, 재귀, 74 바이트

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

첫 번째 답변에서 텍스트를 인쇄 한 다음 PatternFormatException을 발생시킵니다. 우리는 'A'로 시작하여 ++char이후에 문자 Z가 오류를 던질 때까지 증분을 재귀 적으로 호출합니다 .

Groovy, 부정 행위로 77 바이트

린치 될 위험이있는 경우 :

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

즉,이 페이지의 데이터를 읽고 처음에 유효한 답변의 정의를 인쇄하십시오. 내 방어에서 ... 요청한 답변을 인쇄합니다 ... 아무도 페이지를 편집하지 않습니다 ...

Groovy, 'times'를 사용하여 81 바이트

세 글자 단어 패턴으로 파이썬 답변을 기반으로합니다.

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

인쇄물:

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, main (...)에서 반복하여 83 바이트

개행을 하나의 문자로 간주한다고 가정합니다.

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

첫 번째 답변에서 텍스트를 인쇄 한 다음 PatternSyntaxException을 발생시킵니다.

Groovy, eachWithIndex를 사용하여 88 바이트

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

그루비, 조바꿈을 사용하여 102 바이트

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

Kat 은 유효한 단어이므로에 대한 특수 사례를 제거 할 수 있습니다 kit.
비즈니스 고양이

편집, 감사합니다. 나를 저장 3 바이트
:)

2

05AB1E , 77 바이트

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

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

다음 문자열 압축을 사용합니다.

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP

Base-214로 변환 :

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

3 글자 글자 맞추기 단어 목록 사용 : http://wordfinder.yourdictionary.com/letter-words/3

출력은 다음과 같습니다.

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 바이트 버전이 있지만 2 글자 단어는 허용되지 않습니다.


설명 :

•‹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영어 단어가 아닙니다. 이것을 보면 라틴어 단어 만 나타납니다.
mbomb007

@ mbomb007 Que나는 3 글자의 합법적 인 글자 맞추기가 있다는 것을 알고 철자가 틀렸다 .
Magic Octopus Urn

좋은 단어 :) 로 대체 될 수 있습니다 ,.
Emigna 2012


2

Lithp , 136 (125) 117 바이트

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

(가독성을 위해 분리)

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

이것은 거의 파이썬 답변의 포트입니다

  • 를 사용하여 11 바이트 저장 each의 색인
  • 쓸모없는 호출을 제거하여 8 바이트를 절약했습니다. (scope #)

산출:

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
좋은 이름! (나는 lithp에서 쏟아지지는 않지만, 언어는 여전히 획기적인 ithue를 가지고 있습니까?)
Jonathan Allan

1
감사합니다! 아니, 언어는 발음으로 괜찮습니다. 더 이상 Lisp의 개화 버전입니다. 방금 Lisp가 머리를 감싸기가 너무 어렵다는 것을 알았습니다. Lithp은 저에게 이해가되는 방식으로 그것을 받아들입니다. 대부분의 Lisp 코드보다 훨씬 읽기 쉽습니다.
Andrakis

1

배치, 250 바이트

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

나는 괜찮은 점수를 얻지 못했기 때문에 내가 찾을 수 있는 가장 짧은 유머러스 한 단어를 보았습니다 .

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

스택 형 , 72 바이트

72 바이트 에는 2 개가 있습니다 !

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

온라인으로 사용해보십시오! 그 멋진 패턴을 사용합니다. (요청하기 전에 ++단일 토큰이므로 + +대신 사용됩니다.)

에서 반복하여 두 작업 6590올바른 문자 순서를 받고. 노트:

  • #: 에 대한 별칭입니다 chr
  • # 에 대한 별칭입니다 get
  • {!...}{ n : ... }( n파라미터로 람다)와 동일

73 바이트의 경우 :

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

1

매스 매 티카 93 바이트

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

수확량

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

그루비, 72 바이트

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

산출

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

파이썬 (3), 145 (137) 135 바이트

각 실행마다 출력을 의사 난 수화하기 위해 바이트를 희생했습니다. 아이디어는 3 자 이상의 소문자를 /usr/share/dict/words찾은 다음를 사용하여 해당 목록에서 하나를 선택하는 것 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])

편집

  • title()단어를 대문자로 입력하지 않아도 제거 되었습니다.
  • "\n(%c.{3,})"제거를 허용 하기 위해 정규식을 (+ 3 바이트)로 변경했습니다.,re.M(-5 바이트)를 .

출력 예 :

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

모두 유효한지 확실하지 않습니다. 예를 들어,에 대한 정의를 찾을 수 없지만 Qohele검색 결과가 책이나 성스러운 텍스트의 양임을 알 수 있습니다.
Andrakis

1
방금 정규 표현식이 각 단어가 끝날 때까지 일치하지 않는다는 것을 알았습니다.
PidgeyUsedGust

고쳤다. 이제 소문자로 된 단어 만 찾고 이름이 없습니다.
PidgeyUsedGust

1

GNU sed, 81 + 1 (r 플래그) = 82 바이트

이것은 Jonathan Allan의 답변 에서 단어 목록의 sed 구현입니다 .

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

공유 종료 문자를 제외한 단어 t는 1 행에 연결된 양식으로 제공되고 2 행에 의해 요청 된 형식으로 인쇄됩니다. 후행 줄 바꿈이 있습니다.

실행 :

sed -rf alphabet_song.sed <<< ""

1

자바 7 124 121 바이트

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

Java에는 멋진 내장 사전이 없기 때문에 @JonathanAllen 의 답변을 기반으로 합니다 . ;) 내가 좋아하는 전체 알파벳의 또 다른 결말 편지 (찾으려고 s하거나 n또는 y), 또는 같은 중간 편지 ( a또는 e)하지만, 대부분은 하나 개 또는 두 개의 단어가 누락했다, 그래서 나는 사용하여 종료 t뿐만 아니라. 단어는 wordhippo.com 에서 수동으로 선택됩니다 .

언 골프 드 :

여기에서 시도하십시오.

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

산출:

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
일에 대한 +a+++. 나는 그 글을 쓰는 것을 좋아합니다 : P
Poke

1

PHP, 91 87 86 76 바이트

Jonathan Allan의 단어 목록을 기반으로 :

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

이전 버전, 86 바이트 :

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

또는

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

로 실행하십시오 -nr.

산출

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

이상한 말은 이스마엘의 대답을보십시오

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