Создать алфавитную песню

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) или имя (как Jon).

  • Хотя я сомневаюсь, что кто-то найдет его короче, я бы допустил использование фразы вместо одного слова. Так что если по какой-то причине S is for Something smells fishy...короче, дерзайте.

  • Поместите вывод вашей программы в свой ответ или хотя бы в список слов, которые вы использовали (если есть ссылка для запуска вашего кода онлайн, нам не нужно видеть весь вывод).

  • Самый короткий код выигрывает


Этот вызов был вдохновлен этим видео .

mbomb007
источник
Я предполагаю, что сленг не допускается, даже если указан в соответствующих словарях? (например, «Когда она поняла, что снова направилась к малонаселенным районам, она просто вытащила уй !»)
Джонатан Аллан
1
Учитывая некоторые ответы, эта песня Barenaked Ladies кажется актуальной.
AdmBorkBork
1
@JonathanAllan Нет сленга. Словари содержат много вещей, которые технически не являются словами. Сокращения - это одно, сленг - это другое.
mbomb007
4
Жаль, что это привело к нахождению трехбуквенных слов, заканчивающихся на одну букву.
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"

Это в значительной степени ответ Джонатана Аллана , но перенесенный на этот язык.

Старая версия: (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

Это не самое короткое, что может сделать этот язык, но оно должно быть лучшим с жестко закодированными словами.

dzaima
источник
57

Bash (+ coreutils), 81, 87, 8278 байт

Использует справочную страницу для X , как источник слов.

Golfed

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

редактирует

  • Использовал несуществующую страницу справочника xyst + |&для сохранения 5 байт;
  • Сохранено еще 4 байта путем замены sed и sort .

Контрольная работа

%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
1
@JonathanAllan К сожалению, справочная страница для «x» не доступна на TIO, но здесь есть ссылка tio.run/nexus/… , которая использует вместо «man man». Хитрость с xyst заключается в том, что man xyst будет жаловаться на то, что в stderr нет «Ручного ввода для xyst», который затем объединяется с stdout |&, чтобы его можно было найти.
Цеппелин
33

Python 2 , 88 77 байт

-11 байт благодаря xnor (избегайте zip, обходя строку и считая cс 65)

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

Попробуйте онлайн!

(Порт моего Jelly ответа, когда было 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
Мне нравится метод слов, которые заканчиваются на т. Итерация может быть сокращена путем параллельного обновленияx .
xnor
Очень умный, как всегда; Спасибо!
Джонатан Аллан
1
Что Unt? Нигде не могу его найти
Альберт Реншоу
Я не думаю, что Untэто слово, но Utэто так, что вы можете заменить nв своем литерале, \0чтобы сделать это допустимым и добавить только еще один байт. Редактировать правила бессмысленности говорят, что это должно быть 3 буквы длиной ... хммм
Альберт Реншоу
4
@AlbertRenshaw По словам Мерриам-Вебстер, унт - это европейский крот . Согласно Викисловарю, альтернативой может быть ult, это не просто аббревиатура (которая указана с точками, например, ult. ).
Джонатан Аллан
31

Bash, 7869 байт

Аардваркс, Бабушка и Камикадзе!

Golfed

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

редактирует

  • Избавился от 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 / words :

words - это стандартный файл во всех Unix и Unix-подобных операционных системах, и это просто список словарных слов, разделенный символом новой строки. Он используется, например, программами проверки орфографии.

дирижабль
источник
14

PowerShell , 150 141 117 75 байт

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

Попробуйте онлайн!

Циклы от 65до 90(т. Е. ASCII Aдо Z). На каждой итерации мы превращаем целое число в соответствующее char(т. Е. ASCII 65для A), сохраняем его в $iпоследующем для использования, объединяем строки с is for $i, а затем добавляем середину соответствующего слова. Это делается путем индексации в длинную строку (заимствовано из ответа Джонатана Аллана ). Заканчивается буквой, tчтобы сделать трехбуквенное слово.

Получающиеся строки все остаются в конвейере, и неявный Write-Outputв конце печатает их с символами новой строки между ними.

Спасла кучу байтов благодаря списку слов Род-
Брора в ответе Джонатана Аллана

AdmBorkBork
источник
Вы можете удалить первую букву каждого слова (заглавную) и напечатать с [char]$ примером
Rod
@ Род Спасибо. Я связал это с тем, над чем я только что работал, чтобы изменить способ вычисления цикла, а также способ расчета и сохранения индексации.
AdmBorkBork
13

Желе , 39 байт

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

TryItOnline!

Основан на 56-байтовой версии (две ниже), но изменил слова, чтобы убрать все средние буквы, "u"чтобы он мог индексироваться в словарное слово "anisole"*, что имеет удобство, когда все нужные нам буквы имеют индексы меньше шести: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(обратите внимание на "e"справа - индекс ноль [также 7 и -7 и любое другое число, совпадающее с 0 mod 7]). Это также рано в словаре, поэтому имеет только два, а не гораздо более распространенный трехбайтовый индекс поиска ( "anisogamete"также будет работать для 2).

* Старая школа название ароматического эфира метоксибензола, часто используемого в парфюмерии.

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¦

Все слова имеют вторую букву «s» или «a» и последнюю букву «p» или «t», используя поиск по четырем базам в декартовом произведении «sa» и «pt». За исключением слова «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

... давайте поиграем "Найди, в какой букве нет животного!" есть один, и только один - остерегайтесь красной сельди (ложь, красная сельдь была ксеноном, который является элементом, очевидно, не животным) , здесь два пятибуквенных слова, которые не являются животными (ксенон - одно) :

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
Хех, это была ложь. Ксенон был очевидным :)
Джонатан Аллан
Я думаю, что они думают о ксенопе , которого нет в словаре желе.
Джонатан Аллан
Прекрасная идея! Но Uut?
Грег Мартин
@GregMartin Я согласен, я думаю, что вы начали превращать свои слова в слоговые ворчания.
Волшебная Урна Осьминога
10

Retina , 89 87 байт

Сохранено 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в конце каждой строки, так как каждое слово, используемое в песне, заканчивается на t.

Бизнес Кот
источник
Вам не нужно захватывать заглавные буквы. Просто используйте $&или $0вместо $1. На самом деле это также может сэкономить байты на моей стадии разделения.
Мартин Эндер,
@MartinEnder Спасибо. Что именно делает $&? Я не видел этого на вики-сайте GitHub.
Business Cat
Это псевдоним для $0(и это только часть разновидности .NET, как и большинства других разновидностей).
Мартин Эндер
Используя несколько более коротких слов, чтобы получить его до 83, попробуйте это онлайн
Джонатан Аллан
8

Сетчатка , 92 88 байт

Сохранено 4 байта, заимствуя идею из ответа Business Cat .

Число байтов предполагает кодировку ISO 8859-1.


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

Попробуйте онлайн!

На основе AdmBorkBork's слов , но я изменил еще несколько слов на те, которые заканчиваются, 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";

Новая строка представляется как, \nно считается как 1 байт.


Выход:

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

Странные слова:

  • икат :

    Икат, или иккат, - это метод окрашивания, используемый для нанесения рисунка на ткани, в котором используется резистовое окрашивание пряжи перед окрашиванием и ткачеством ткани.

  • xat :

    Резной столб, установленный индейцами западной части Северной Америки в качестве памятника мертвым

  • прыщик :

    прыщ; кожа порока.

  • кат :

    Катха эдулис (кат, кат) - цветущее растение, произрастающее на Африканском Роге и Аравийском полуострове.

Исмаэль Мигель
источник
Умное решение Я собирался сделать что-то подобное, рад видеть это! +1
Альберт Реншоу
1
Это не английские слова ....
Конор О'Брайен,
@ ConorO'Brien Ты уверен? PHP все написано на английском, насколько я знаю.
Исмаэль Мигель
5
@IsmaelMiguel такие вещи, как vprintfи zend_version, безусловно, не английские слова. Очень немногие из этих сущностей на самом деле слова.
Конор О'Брайен,
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Я бы серьезно подумал, прежде чем позволить моим детям петь это.
дирижабль
Для тех, кто делает двойной дубль, как я: английский не всегда с большой буквы. ;)
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 , которая сокращает количество байтов в нижнем регистре. Вот полный список всех двухбуквенных прогонов, которые сведены в один байт:

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 может неявно распаковывать строку, заключенную в обратные кавычки, на самом деле это здесь на байт длиннее, потому что вам придется взять два символа в распакованной строке, а не один.

Оливер
источник
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']

Emigna
источник
6

Ruby, 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

Все трехбуквенные слова, заканчивающиеся на «т», большинство из них «на».

Использование спорных слов (iat, dat, amp. Ump) - 55 байт:

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

Все еще пытаясь найти образец, я думаю, что можно использовать только 2 разных окончания и все упростить.

Спасибо @Value Ink и @Business Cat за помощь.

гигабайт
источник
1
Qat и Xis (множественное число от Xi ) - это слова, так что вы можете использовать их, а также уменьшить количество регулярных выражений поиска до/#{l}../
Value Ink
Спасибо, я думал о чем-то подобном, но сейчас я вдали от своего ПК, я обязательно это проверю.
GB
На самом деле я пытался найти 5-буквенные слова для пропущенных букв: массив, эссе, инкрустация ... Но я застрял на этом. :-(
GB
1
Kat является допустимым словом, поэтому вы можете удалить специальный случай для kit.
Business Cat
1
Я думал о «дат» и «зат», но они оба являются одним и тем же соединением (тем) и сленгом, оба типа слов которых запрещены. «amp» и «UMP» кажутся аббревиатурами «Ampre» / «Ampify» и «Umpire». «IAT» является аббревиатурой, так что это тоже не хорошо.
Джонатан Аллан
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

Попробуйте онлайн

Йоб - н. - жестокий и жестокий парень

Хм, сегодня кое-что узнал ...

steenbergh
источник
2
В Великобритании гангстером является хам, бандит или хам; более неуклюжий и шумный, чем жестокий и жестокий.
Джонатан Аллан
1
В русском языке «Yob» - это сокращенная форма нецензурного глагола в прошлом, которая, по сути, является эквивалентом «f * ck» в английском языке. Чем больше вы знаете ...
Мистер Скапеграс
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
Аднан
источник
Можете ли вы объяснить, почему это толкает этот массив?
Волшебная Урна Осьминога
Я думаю, что 05AB1E имеет несколько встроенных слов, которые могут быть представлены 2 байтами в строке.
12Me21
@ 12Me21 это круто! ”–³”=Appleи int(–³,214)=23891я все еще не вижу здесь корреляции.
Волшебная Урна Осьминога
Я полагаю, что это список: github.com/Adriandmen/05AB1E/blob/master/dictionary.py
12Me21
2
@carusocomputing Вот более подробное описание того, как работает сжатие и распаковка.
Аднан,
5

Clojure, 159 232 байта

Что ж, теперь это, безусловно, неконкурентное решение, так как было бы намного проще жестко закодировать используемые слова. Размещайте это только ради правильного ответа (и не используйте список слов других людей).

(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))
cliffroot
источник
orнет orb, за 1 байт.
wizzwizz4
1
Минимальная длина составляет 3 буквы
12Me21
@ mbomb007 обновлен.
Утес
4

JavaScript (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, использующий только трехбуквенные слова, оканчивающиеся на t. Строка распаковывается в AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi.

Я пробовал связывать двухбуквенные пары следующим образом:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

Теперь я Xпрошел весь путь, но застрял Y; насколько я могу судить, единственное достижимое трехбуквенное Xслово Xis, а трехбуквенное слово, начинающееся сYs .

Для записи, полная строка была ceeeweeereueaebiueeiziais...

ETHproductions
источник
Согласно Wiktionary, вы можете использовать uziи tiz...
DLosc
@DLosc Отличная идея. Тогда вы должны сделать sei, skiили sri, что оставляет вас с ree, roe, rue, rye, который оставляет вас ... только три буквы q-слов я могу найти это qat, qisи qua. Есть ли страница Викисловаря с более чем трехбуквенными словами?
ETHproductions
Есть категория для трехбуквенных слов, но это не полный список. Например, он не содержит que (о котором я знаю только потому, что другой ответ использовал его). (Не уверен, что есть pслово, которое заканчивается uна.)
DLosc
@DLosc я уже использовал piu, так что это совсем не проблема: P Спасибо!
ETHproductions
Гектометр piuкажется довольно пограничным - в Викисловарь нет его как на английском, а в piùDictionary.com он есть (не знаю, как мы рассматриваем акценты для этой задачи). Но да, ys_это будет проблемой.
DLosc
3

Mathematica, 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, полностью забыл, спасибо
Грег Мартин
3

Groovy, 76 73 байта

(отредактировано от 76 до 73 байт, спасибо коту)

Вдохновленный решением ruby:

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

мы используем anyвместо каждого, так как он короче, и все операторы println возвращают false. Для особых случаев в строке мы используем String.find, который в groovy возвращает совпадение или ноль. В 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

Groovy, рекурсия, 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, путем повторения на главном (...), 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"}

Groovy, используя транспонирование, 102 байта

['A'..'Z','niooaauusoioaiuaaoiineeaei'as List].transpose().each{println it[0]+" is for ${it.join()}t"}
Матиас Бьярланд
источник
Kat является допустимым словом, поэтому вы можете удалить специальный случай для kit.
Business Cat
отредактировал, спасибо. Спасло меня 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-байтовая версия, но двухбуквенные слова не допускаются.


Разъяснение:

•‹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-х буквенное юридическое слово скрэббл, неправильно написало его.
Волшебная Урна Осьминога
Хорошие слова :) можно заменить на ,.
Emigna
2

SmileBASIC, 131 113 82 81 байт

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

Теперь, используя слова, которые в t

12Me21
источник
Пример вывода?
улитка
Это так же, как этот: codegolf.stackexchange.com/questions/109502/…
12Me21
2

Lithp , 136 125 117 байт

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

(Сплит для удобства чтения)

Попробуйте онлайн!

Это в значительной степени порт ответа Python

  • Сохранено 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
Andrakis
источник
2
Отличное имя! (Я не знаю, как это происходит из-за липы, хотя язык имеет такое большое значение?)
Джонатан Аллан
1
Спасибо! Нет, язык в порядке с произношением. Более того, это испорченная версия Lisp. Я только что обнаружил, что Лисп слишком труден, чтобы обернуть мою голову, Литп - мой взгляд на это таким образом, который имеет смысл для меня. Он должен быть намного более читабельным, чем большинство кода на Лиспе.
Андракис
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 байта!

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

Попробуйте онлайн! Используя этот потрясающий шаблон. (Прежде чем спросить, ++будет один токен, так+ + используется вместо.)

Оба работают путем итерации от и 65до 90получения правильной последовательности символов. Примечания:

  • #: это псевдоним для chr
  • # это псевдоним для get
  • {!...}такой же как { n : ... }(лямбда с nпараметром)

Для 73 байтов:

'niooaauusoioaiuaaoiineeaei'toarr{e i:65 i+#::' is for '+\e+'t'+ +out}map
Конор О'Брайен
источник
1

Mathematica 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

Groovy, 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

Python 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
PidgeyUsedGust
источник
Не уверен, что они все действительны. Например, я не могу найти определение Qohele, хотя поиск показывает, что это книга или объем священного текста.
Андракис
1
Просто заметил, что мое регулярное выражение не совпадает до конца каждого слова - исправит.
PidgeyUsedGust
Починил это. Теперь ищем только строчные, полные слова, чтобы в них не было имен.
PidgeyUsedGust
1

GNU sed, 81 + 1 (флаг r) = 82 байта

Это sed реализация списка слов из ответа Джонатана Аллана .

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

Слова, кроме разделяемой буквы t , приводятся в сцепленной форме в строке 1, а затем печатаются в запрошенном формате в строке 2. Присутствует завершающий символ новой строки.

Выполнить :

sed -rf alphabet_song.sed <<< ""
seshoumara
источник
1

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

На основании @JonathanAllen ответа «s , так как Java не имеет фантазий встроенных словаря. ;) Я пытался найти другую конечную букву для всего алфавита (например, sили nили y), или среднюю букву (например, aили e), но в большинстве из них не было только одного или двух слов, поэтому я в итоге tтоже использовал. Слова выбираются вручную из wordhippo.com .

Ungolfed:

Попробуй это здесь.

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
+1 за +a+++. Мне нравится писать эти: P
Poke
1

PHP, 91 87 86 76 байт

на основе списка слов Джонатана Аллана :

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

Странные слова см. В ответе Измаила.

Titus
источник