Erstellen Sie ein Alphabet-Lied


55

Ihr Ziel ist es, ein Alphabet-Lied als Text in der folgenden Form (in der Reihenfolge) zu erstellen:

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>

Beispielausgabe:

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

Regeln:

  • Jeder "Buchstabe" des Songs hat eine eigene Zeile, es gibt also 26 Zeilen und einen möglichen Zeilenvorschub am Ende.

  • Die Ausgabe unterscheidet zwischen Groß- und Kleinschreibung:

    • Der Buchstabe am Anfang jeder Zeile muss in Großbuchstaben geschrieben werden.
    • is for ist klein geschrieben.
    • Das gewählte Wort muss nicht groß geschrieben werden, kann aber sein. Alle Zeilen sollten konsistent sein.
  • Das gewählte Wort für jede Zeile liegt bei Ihnen, muss jedoch ein gültiges englisches Wort mit mindestens 3 Buchstaben sein und darf keine Konjunktion (wie andoder but), Interjektion / Ausrufezeichen (wie heyoder yay), Abkürzung (wie XLS) oder a sein Name (wie Jon).

  • Obwohl ich bezweifle, dass es jemand kürzer finden würde, würde ich es für akzeptabel halten, eine Phrase anstelle eines einzelnen Wortes zu verwenden. Also, wenn aus irgendeinem Grund S is for Something smells fishy...kürzer ist, probieren Sie es aus.

  • Fügen Sie die Ausgabe Ihres Programms in Ihre Antwort oder zumindest die Liste der von Ihnen verwendeten Wörter ein (wenn es einen Link gibt, über den Sie Ihren Code online ausführen können, müssen wir nicht die gesamte Ausgabe anzeigen).

  • Kürzester Code gewinnt


Diese Herausforderung wurde von diesem Video inspiriert .


Ich vermute, Slang ist nicht erlaubt, auch wenn es in richtigen Wörterbüchern aufgeführt ist? (zB "Als sie bemerkte, dass sie wieder in Richtung Outback unterwegs war, zog sie gerade ein uey !")
Jonathan Allan

1
In Anbetracht einiger Antworten scheint dieses Lied von Barenaked Ladies relevant zu sein.
AdmBorkBork

1
@ JonathanAllan Kein Slang. Wörterbücher enthalten viele Dinge, die technisch gesehen keine Wörter sind. Abkürzungen sind eine, Umgangssprache eine andere.
mbomb007

4
Es ist schade, dass dies dazu führte, dass drei Buchstaben gefunden wurden, die mit demselben Buchstaben enden.
12. Mai,

1
Es gibt ein paar Antworten mit einem externen Wörterbuch. Sollten sie nicht die Größe dieser Datei zu ihrem Code hinzufügen müssen?
Pipe

Antworten:


3

SOGL 0.8.1 , 60 32 Bytes

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

Erläuterung:

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

Dies ist so ziemlich die Antwort von Jonathan Allan , wurde aber auf diese Sprache portiert.

Alte Version: (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)

Ausgabe:

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

Dies ist nicht die kürzeste Zeit, die diese Sprache leisten kann, sollte aber die beste sein, wenn die Wörter hart codiert sind.


57

Bash (+ Coreutils), 81, 87, 8278 Bytes

Verwendet die Manpage für X als Quelle für Wörter.

Golf gespielt

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

EDITS

  • Verwendete eine nicht existierende 'xyst'-Manpage + |&, um 5 Bytes zu sparen;
  • 4 weitere Bytes gespart, indem sed und sort getauscht wurden .

Prüfung

%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
Sind lsof und xregs Wörter? :)
OldBunny2800

1
@ OldBunny2800 sollte jetzt behoben sein
Zeppelin

2
Ich habe nachgeschlagen und ja, xyst ist ein echtes Wort. :)
OldBunny2800

3
Sieht so aus, als würden Kinder ein paar große Wörter lernen. : D
mbomb007

1
@JonathanAllan Leider ist auf TIO keine Manpage für "x" verfügbar, aber hier ist ein Link tio.run/nexus/… , der stattdessen "man man" verwendet. Der Trick mit xyst ist, dass man xyst sich beschwert, dass es für xyst "keinen manuellen Eintrag" im stderr gibt, der dann mit stdout zusammengeführt wird |&, so dass es grepped werden kann.
Zeppelin

33

Python 2 , 88 77 Bytes

-11 Bytes dank xnor (Vermeiden Sie den Reißverschluss, indem Sie den String durchlaufen und cvon 65 aufwärts zählen )

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

Probieren Sie es online!

(Ein Port meiner Jelly-Antwort, als es 56 Bytes waren.)

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
Ich mag die Methode der Wörter, die mit t enden. Die Iteration kann durch paralleles Aktualisierenx verkürzt werden .
8.

Sehr klug wie immer; Vielen Dank!
Jonathan Allan

1
Was ist Unt? Kann das nirgendwo finden
Albert Renshaw

Ich glaube nicht, dass Untes ein Wort ist, aber Utso können Sie das nin Ihrem Literal durch ersetzen \0, um dies gültig zu machen und nur ein weiteres Byte hinzuzufügen. Nach den Regeln von Nevermind muss es 3 Buchstaben lang sein ... hmmm
Albert Renshaw

4
@AlbertRenshaw Ein Unt ist ein europäischer Maulwurf nach Merriam-Webster . Eine Alternative wäre laut Wiktionary ult, es ist nicht nur eine Abkürzung (die mit Punkten wie ult. Aufgeführt sind ).
Jonathan Allan

31

Bash, 7869 Bytes

Erdferkel, Babuschkas und Kamikazes!

Golf gespielt

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

EDITS

  • Hab grep, -9 Bytes losgeworden

Prüfung

%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

Verwendet / usr / share / dict / words :

words ist eine Standarddatei auf allen Unix- und Unix-ähnlichen Betriebssystemen und lediglich eine durch Zeilenumbrüche getrennte Liste von Wörterbuchwörtern. Es wird beispielsweise von Programmen zur Rechtschreibprüfung verwendet.


14

PowerShell , 150 141 117 75 Byte

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

Probieren Sie es online!

Schleifen von 65bis 90(dh ASCII Abis Z). Bei jeder Iteration wandeln wir die Ganzzahl in die entsprechende char(dh ASCII 65für A) um, speichern sie $ifür die spätere Verwendung, verknüpfen sie diese mit einer Zeichenfolge is for $iund markieren dann die Mitte des entsprechenden Wortes. Dies geschieht durch Indizieren in eine lange Zeichenfolge (aus der Antwort von Jonathan Allan entlehnt ). Beendet mit dem Buchstaben t, um das Wort mit drei Buchstaben zu bilden.

Die resultierenden Zeichenfolgen Write-Outputverbleiben alle in der Pipeline und werden am Ende implizit mit Zeilenumbrüchen gedruckt.

Dank Rod Borrowed Wordlist aus Jonathan Allans Antwort wurde eine Menge Bytes gespeichert


Sie können den ersten Buchstaben jedes Wortes (den Großbuchstaben) entfernen und mit [char]$ Beispiel
Rod

@ Rod Danke. Ich habe das mit dem, woran ich gerade gearbeitet habe, gekoppelt, um zu ändern, wie die Schleife berechnet wird und wie die Indizierung berechnet und noch etwas gespeichert wird.
AdmBorkBork

13

Jelly , 39 Bytes

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

TryItOnline!

Basierend auf die 56 - Byte - Version (zwei unten), aber geändert Worte alle mittleren Buchstaben entfernen "u"s so kann es Index in das Wörterbuch Wort "anisole"*, das die Bequemlichkeit hat den Buchstaben, die wir alle Indizes benötigen weniger als sechs: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(beachten Sie die "e"auf der rechten Seite ist bei Index Null [auch 7 und -7 und jede andere Zahl, die zu 0 mod 7 kongruent ist]). Es ist auch früh im Wörterbuch, hat also nur eine Zwei anstelle des weitaus gebräuchlicheren Drei-Byte-Nachschlageindex ( "anisogamete"würde auch für 2 funktionieren).

* Der altbekannte Name für den aromatischen Ether Methoxybenzol, der häufig in Parfums verwendet wird.

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

Wie?

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

Zurück, 46

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

Alle Wörter haben den zweiten Buchstaben "s" oder "a" und den letzten Buchstaben "p" oder "t" unter Verwendung einer Basis-Vier-Suche in einem kartesischen Produkt aus "sa" und "pt". Außer dem "U" -Wort, das der Code in "Use" ändert (mit dem relativ sperrigen F”e272¦Ende) - wenn ich eine Wortliste wie diese finden könnte, die keine solche Ausnahme hat, würden wir uns 39 Bytes ansehen .

Wortliste:

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

Probier diese


Vorherige 56 Bytes

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

Wortliste:

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

Es ist formatiert, probieren Sie es aus


Vorher 83 Bytes

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

... lass uns spielen "Finde heraus, welcher Buchstabe kein Tier hat!" es gibt einen und nur einen - achte auf den roten Hering (eine Lüge, der rote Hering war Xenon, was ein Element ist, offensichtlich kein Tier) , zwei fünf Buchstaben sind hier keine Tiere (Xenon ist eins) :

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

(Natürlich ist dies korrekt formatiert, probieren Sie es aus - ich dachte nur, ich würde Platz sparen)


Xenonist kein Tier. Ich war mir sicher, dass Sie einen Witz gemacht haben H is for Herring, aber ich denke nicht.
mbomb007

He, es war eine Lüge. Xenon war die offensichtliche :)
Jonathan Allan

Ich denke, sie denken an Xenop , was nicht in Jellys Wörterbuch steht.
Jonathan Allan

Wunderbare Idee! Aber Uut?
Greg Martin

@ GregMartin Ich stimme dir zu, ich glaube, du hast angefangen, deine Worte in Silbengrunzen umzuwandeln.
Magic Octopus Urn

10

Retina , 89 87 Bytes

2 Bytes gespart dank Martin Ender


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

m`$
t

Probieren Sie es online!

Ich habe ein Wort für jeden Buchstaben ausgewählt, der auf "" endet t(einige sind ziemlich dunkel).

Erläuterung


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

Ersetzen Sie die nicht vorhandene (leere) Eingabe durch den obigen Text.

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

Ersetzen Sie jeden Großbuchstaben durch (newline)(itself) is for (itself). Dies führt dazu, dass der obige Text wie in separate Zeilen aufgeteilt wird

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

... und so weiter

^¶
​

Da der Zeilenumbruch jedoch vor jedem Großbuchstaben platziert wurde, muss ein führender Zeilenumbruch entfernt werden. Es wird in dieser Phase entfernt.

m`$
t

Setzen Sie ein tan das Ende jeder Zeile, da jedes im Lied verwendete Wort auf endet t.


Sie müssen den Großbuchstaben nicht erfassen. Verwenden Sie einfach $&oder $0anstelle von $1. Eigentlich könnte das auch Bytes über meine Split-Phase sparen.
Martin Ender

@ MartinEnder Danke. Was $&genau macht das? Ich habe es nicht im GitHub-Wiki gesehen.
Business Cat

Es ist ein Alias ​​für $0(und es ist nur ein Teil der .NET-Variante sowie der meisten anderen Varianten).
Martin Ender


8

Netzhaut , 92 88 Bytes

4 Bytes gespart, indem eine Idee aus der Antwort von Business Cat ausgeliehen wurde .

Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.


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

Probieren Sie es online!

Basierend auf der Wortliste von AdmBorkBork , aber ich habe noch ein paar Wörter in solche geändert, die dazu führen, dass admehr Bytes im gemeinsamen Suffix gespart werden.

Erläuterung


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

Verwandeln Sie die leere (nicht vorhandene) Eingabe in diese Zeichenfolge. Es enthält alle Buchstaben sowie den Rest der Wörter, die nicht auf enden ad.

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

Fügen Sie vor jedem Großbuchstaben einen Zeilenumbruch ein und verwandeln Sie ihn in X is for X.

m` .$
$&ad

Ordnen Sie die Buchstaben zu, die jetzt für sich sind, und fügen Sie sie hinzu ad, um die verkürzten Wörter zu vervollständigen.

G`.

Verwerfen Sie die leere Zeile, die durch Einfügen eines Zeilenvorschubs erstellt wurde A.


8

PHP, 122 124 127 120 115 101 Bytes

Folgt der "Standard" <letter><filler>t-Struktur.
Ich habe versucht, Wörter zu finden, die vorher von niemandem benutzt wurden.
Wenn Sie ein Wort sehen, das ich ersetzen soll, sagen Sie es mir.

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

Die Newline wird dargestellt, \naber als 1 Byte gezählt.


Ausgabe:

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

Merkwürdige Wörter:

  • Ikat :

    Ikat oder Ikkat ist eine Färbetechnik, die zum Mustern von Textilien verwendet wird und bei der vor dem Färben und Weben des Gewebes ein Resist-Färben der Garne angewendet wird.

  • xat :

    Ein geschnitzter Pfahl, der von einigen Indianern im Westen Nordamerikas als Denkmal für die Toten errichtet wurde

  • zit :

    ein Pickel; Hautfehler.

  • Qat :

    Catha edulis (khat, qat) ist eine Blütenpflanze, die am Horn von Afrika und auf der Arabischen Halbinsel beheimatet ist.


Clevere Lösung Ich wollte etwas Ähnliches tun, froh, das zu sehen! +1
Albert Renshaw

1
Dies sind keine englischen Wörter ...
Conor O'Brien

@ ConorO'Brien Bist du sicher? PHP ist meines Wissens alle in Englisch geschrieben.
Ismael Miguel

5
@IsmaelMiguel Dinge mögen vprintfund zend_versionsind mit Sicherheit keine englischen Wörter. Sehr wenige dieser Entitäten sind tatsächlich Wörter.
Conor O'Brien

1
Ich würde zitzumindest kein komisches Wort nennen , ich denke, jeder sollte bereits wissen, was es bedeutet.
mbomb007

6

Pyke, 55 51 48 Bytes

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

Probieren Sie es hier aus!

Link ist für 3 Länge und nicht geeignet, da Wörter Konjunktiven enthalten.

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

Ausgänge:

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

Sie können dies außerhalb von Pyke mit demselben Algorithmus testen. Benötigt 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))

Außerdem erhalte ich einen Fehler beim Ausführen Ihres Codes.
mbomb007

Timeout running code. BAD EVALStellen Sie sicher, dass Sie Ihren Link "Online testen" aktualisieren.
mbomb007

2
Z is for zoofiliaIch würde ernsthaft darüber nachdenken, bevor ich meine Kinder dies singen lasse.
Zeppelin


Für jeden, der wie ich ein Double-Take macht: Englisch wird nicht immer groß geschrieben. ;)
DLosc

6

Japt , 52 50 Bytes

Zusammenarbeit mit @ETHproductions

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

Enthält viele nicht druckbare Elemente. Online testen!

Die Wortliste ist:

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 verwendet die Shoco-String-Komprimierungsbibliothek , mit der häufige Kleinbuchstaben in Bytes umgewandelt werden. Hier ist eine vollständige Liste aller aus zwei Buchstaben bestehenden Läufe, die in einem Byte zusammengefasst sind:

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

Daher besteht die Idee darin, für jeden Buchstaben des Alphabets ein Wort mit einem dieser Paare zu bilden.

;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

Eine interessante Sache ist, dass Japt zwar implizit einen mit Backticks umwickelten String dekomprimieren kann, dies hier jedoch um ein Byte länger ist, da Sie zwei Zeichen in dem dekomprimierten String anstelle eines Zeichens benötigen .


6

05AB1E , 45 42 39 38 37 36 Bytes

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

Probieren Sie es online!

Erläuterung

Audrückt das Großbuchstaben.
'Æådrückt das Wort scenario.
•à¡P°€kš¦zᮕdrückt die Basis-10-Nummer 36774474076746444766322426.
verwendet diese Ziffern, um sie zu indizieren scenario.
Zippt diese Zeichenfolgen zusammen in die Liste[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

Verwendete Wörter: ['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-Byte-Version mit einigen Worten, bei denen ich mir nicht sicher bin

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

Wörter: ['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 Bytes

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

Ausgabe:

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

Alle 3-Buchstaben-Wörter, die mit 't' enden, die meisten mit 'at'.

Mit kontroversen Wörtern (iat, dat, amp. Ump) - 55 Bytes:

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

Ich versuche immer noch, ein Muster zu finden, aber ich denke, es ist möglich, nur zwei verschiedene Endungen zu verwenden und alles zu vereinfachen.

Vielen Dank an @Value Ink und @Business cat für Ihre Hilfe.


1
Qat und Xis (Plural von Xi ) sind Wörter, also können Sie sie verwenden und auch Ihren regulären Ausdruck auf/#{l}../
Value Ink

Danke, ich habe über etwas Ähnliches nachgedacht, aber jetzt bin ich nicht mehr auf meinem PC, das werde ich auf jeden Fall überprüfen.
GB

Eigentlich habe ich versucht, ein paar Wörter mit fünf Buchstaben für die fehlenden Buchstaben zu finden: Array, Aufsatz, Inlay ... Aber ich bleibe dabei. :-(
GB

1
Kat ist ein gültiges Wort, daher können Sie den Sonderfall für entfernen kit.
Business Cat

1
Ich dachte an "dat" und "zat", aber beide sind die gleiche Konjunktion (das) und Umgangssprache, beide Arten von Wörtern sind gesperrt. "amp" und "ump" scheinen Abkürzungen für "ampere" / "amplify" und "umpire" zu sein. "IAT" ist ein Akronym, das ist auch nicht gut.
Jonathan Allan

6

/// 163 Bytes

/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

Probieren Sie es online aus

Yob - n. - Ein grausamer und brutaler Kerl

Hm, heute etwas gelernt ...


2
In Großbritannien ist ein Yob ein Lümmel, ein Schläger oder ein Moor. unhöflicher und launischer als grausam und brutal.
Jonathan Allan

1
Im Russischen ist "Yob" eine abgekürzte Form des obszönen Verbs, das im Grunde genommen dem englischen "f * ck" entspricht. Je mehr Sie wissen ...
Mr Scapegrace

5

05AB1E , 72 68 Bytes

Code:

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

Verwendet die CP-1252- Codierung. Probieren Sie es online!

Erläuterung

Der folgende Code:

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

schiebt dieses Array:

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

Und wird mit folgendem Code verarbeitet:

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

Können Sie erklären, warum das dieses Array pusht?
Magic Octopus Urn

Ich denke, 05AB1E hat einige eingebaute Wörter, die durch 2 Bytes in einer Zeichenfolge dargestellt werden können.
12. Mai,

@ 12Me21 das ist cool! ”–³”=Appleund int(–³,214)=23891trotzdem sehe ich hier keine Korrelation.
Magic Octopus Urn


2
@carusocomputing Hier finden Sie eine detailliertere Beschreibung der Funktionsweise der Komprimierung und Dekomprimierung.
Adnan

5

Clojure, 159 232 Bytes

Nun, jetzt ist es sicherlich keine konkurrierende Lösung, da es viel einfacher wäre, die verwendeten Wörter fest zu codieren. Stellen Sie es nur heraus, um die richtige Antwort zu haben (und nicht die Wörterliste anderer zu verwenden).

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

Grundsätzlich werden immer noch alle im clojure.coreNamespace definierten Funktionen abgerufen, danach aber ausgewertet doc <function name>und in Strings eingefügt. Danach verkettet es sich zu einer riesigen Zeichenkette (mit dem Wort xyst) und findet von dort die passenden Wörter. Sollte in Clojure REPL ausgeführt werden.

Ausgabe:

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

Alte Lösung:

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

ornicht orbfür 1 Byte.
wizzwizz4

1
Die Mindestlänge beträgt 3 Buchstaben
12Me21

@ mbomb007 aktualisiert.
Cliffroot

4

JavaScript (ES6), 82 Byte

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

Eine anonyme Funktion, die eine Zeichenfolge zurückgibt. Enthält nicht druckbare Elemente. Hier ist eine Version, die dies nicht tut:

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

Hierbei wird die @ JonathanAllen-Technik verwendet, wobei nur Wörter mit drei Buchstaben verwendet werden, die auf enden t. Die Zeichenfolge wird auf dekomprimiert AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi.

Ich habe versucht, zwei Buchstabenpaare wie folgt zu verketten:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

Ich habe es jetzt bis zum Ende geschafft, bin Xaber festgefahren Y. Soweit ich das beurteilen kann, ist das einzige erreichbare XWort mit drei Buchstaben Xis, und es gibt kein Wort mit drei Buchstaben, das mit beginnt Ys.

Für die Aufzeichnung war die volle Zeichenfolge ceeeweeereueaebiueeiziais...


Laut Wiktionary könnten Sie verwenden uziund tiz...
DLosc

@ DLosc Tolle Idee. Dann würden Sie tun müssen sei, skioder sri, was lässt Sie mit ree, roe, rue, rye, was lässt Sie mit ... der nur drei Buchstaben q-words finde ich sind qat, qisund qua. Gibt es eine Wiktionary-Seite mit mehr Wörtern aus drei Buchstaben?
ETHproductions

Es gibt eine Kategorie für Wörter mit drei Buchstaben, aber es ist keine vollständige Liste. Zum Beispiel enthält es keine Warteschlange (die ich nur kenne, weil eine andere Antwort hier sie verwendet hat). (Ich pu
bin

@ DLosc habe ich schon benutzt piu, das ist also überhaupt kein Problem: P Danke!
ETHproductions

Hm. piuscheint ziemlich grenzwertig zu sein - wiktionary hat es nicht als Englisch und dictionary.com hat es als più(keine Ahnung, wie wir Akzente für diese Herausforderung in Betracht ziehen). Aber ja, ys_wäre ein Problem.
DLosc

3

Mathematica, 97 Bytes

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

Sucht in Mathematica WordListnach dem dritten Wort, das mit jedem Buchstaben beginnt. dies vermeidet einbuchstabige Wörter und Interjektionen. Hat einen Trailng Newline.

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, total vergessen, danke
Greg Martin

3

Groovy, 76 73 Bytes

(bearbeitet von 76 bis 73 Bytes, danke Katze)

Inspiriert von der Rubinlösung:

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

Wir verwenden anyanstelle von each, da es kürzer ist und alle println-Anweisungen false zurückgeben. Für die Sonderfälle in der Zeichenfolge verwenden wir String.find, das in groovy die Übereinstimmung oder Null zurückgibt. Bei null verwenden wir den elvis-Operator ?:, um atstattdessen ein Wort zurückzugeben, das auf endet .

Druckt aus:

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, Rekursion, 74 Bytes

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

druckt den Text aus der ersten Antwort aus und löst dann eine PatternFormatException aus. Wir rufen den Abschluss rekursiv auf, beginnend mit 'A' und inkrementierend, ++charbis das Zeichen nach Zdem Fehler wirft.

Groovy, durch Betrug, 77 Bytes

Mit der Gefahr gelyncht zu werden:

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

dh lesen Sie die Daten auf dieser Seite und drucken Sie zu Beginn die Definition einer gültigen Antwort aus. Zu meiner Verteidigung ... druckt es die angeforderte Antwort aus ... jetzt bearbeitet niemand die Seite ...

Groovy, mit "Zeiten", 81 Bytes

Aufbauend auf der Python-Antwort mit dem Wortmuster aus drei Buchstaben:

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

druckt:

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, indem auf main (...), 83 Bytes rekursiv

Angenommen, wir zählen Zeilenumbrüche als ein Zeichen.

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

druckt den Text aus der ersten Antwort aus und löst dann eine PatternSyntaxException aus.

Groovy, using eachWithIndex, 88 Bytes

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

Groovig, transponiert, 102 Bytes

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

Kat ist ein gültiges Wort, daher können Sie den Sonderfall für entfernen kit.
Business Cat

bearbeitet, danke. Hat mich 3 Bytes gerettet
:)

2

05AB1E , 77 Bytes

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

Probieren Sie es online!

Verwendet die folgende Zeichenfolge komprimiert:

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP

Umgerechnet auf Base-214:

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

Verwendete eine Liste von Scrabble-Wörtern mit drei Buchstaben: http://wordfinder.yourdictionary.com/letter-words/3

Die Ausgabe ist wie folgt:

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

Hatte eine 70-Byte-Version, aber 2-Buchstaben-Wörter sind nicht erlaubt.


Erklärt:

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

quiist kein englisches Wort. Wenn Sie dies nachschlagen, sehen Sie nur ein lateinisches Wort.
mbomb007

@ mbomb007 sollte sein, Queich wusste, dass es ein erlaubtes Scrabble-Wort mit 3 Buchstaben gab, das falsch geschrieben wurde.
Magic Octopus Urn

Schöne Worte :) könnten durch ersetzt werden ,.
Emigna


2

Lithp , 136 125 117 Bytes

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

(Split für die Lesbarkeit)

Probieren Sie es online!

Dies ist so ziemlich ein Port der Python-Antwort

  • Mit eachdem Index von 11 Byte gespeichert
  • 8 Bytes gespart, indem unnötiger Aufruf von entfernt wurde (scope #)

Ausgabe:

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
Toller Name! (Ich glaube nicht, dass die Sprache so eine Sprache hat?)
Jonathan Allan

1
Danke! Nein, die Sprache ist gut mit der Aussprache. Es ist eher eine bastardisierte Version von Lisp. Ich fand es einfach viel zu schwierig, Lisp mit dem Kopf zu umwickeln. Lithp ist meine Sichtweise auf eine Weise, die für mich Sinn macht. Es sollte viel besser lesbar sein als der meiste Lisp-Code.
Andrakis

1

Batch, 250 Bytes

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

Da ich nie eine anständige Punktzahl bekommen würde, habe ich mich für die kürzesten humorvollen Worte entschieden, die ich finden konnte:

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

gestapelt , 72 Bytes

Es gibt zwei für 72 Bytes!

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

Probieren Sie es online! Mit diesem tollen Muster. (Bevor Sie fragen, ++wäre ein einzelnes Token, also + +wird stattdessen verwendet.)

Beide arbeiten, indem sie von 65bis iterieren 90und die richtige Zeichenfolge erhalten. Anmerkungen:

  • #: ist ein Alias ​​für chr
  • # ist ein Alias ​​für get
  • {!...}ist das gleiche wie { n : ... }(Lambda mit nals Parameter)

Für 73 Bytes:

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

1

Mathematica 93 Bytes

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

Ausbeuten

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 Bytes

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

Ausgabe

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 Bytes

Ich habe einige Bytes geopfert, um die Ausgabe bei jedem Lauf pseudozufällig zu machen. Die Idee ist, nach Wörtern in Kleinbuchstaben mit mindestens 3 Zeichen zu suchen /usr/share/dict/wordsund dann eines aus dieser Liste mit auszuwählen 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])

Bearbeitungen

  • Entfernt, title()da Wörter nicht groß geschrieben werden müssen.
  • Der reguläre Ausdruck wurde in "\n(%c.{3,})"(+ 3 Byte) geändert , um das Entfernen von ,re.M(- 5 Byte) zu ermöglichen.

Beispielausgabe:

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

Ich bin mir nicht sicher, ob sie alle gültig sind. Zum Beispiel kann ich keine Definition für finden Qohele, obwohl eine Suche ergibt, dass es sich um ein Buch oder einen heiligen Text handelt.
Andrakis

1
Gerade bemerkt, dass mein regulärer Ausdruck nicht bis zum Ende jedes Wortes übereinstimmt - wird behoben.
PidgeyUsedGust

Behoben. Jetzt wird nur nach kleinen, vollständigen Wörtern gesucht, in denen keine Namen enthalten sind.
PidgeyUsedGust

1

GNU sed, 81 + 1 (r Flag) = 82 Bytes

Dies ist eine sed Implementierung der Wortliste aus Jonathan Allans Antwort .

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

Die Wörter mit Ausnahme des gemeinsamen tEndbuchstabens werden in Zeile 1 in verketteter Form angegeben und dann in Zeile 2 im angeforderten Format gedruckt. Eine nachfolgende neue Zeile ist vorhanden.

Ausführen :

sed -rf alphabet_song.sed <<< ""

1

Java 7, 124 121 Bytes

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

Basierend auf der Antwort von @JonathanAllen , da Java kein ausgefallenes integriertes Wörterbuch hat. ;) Ich habe versucht, einen anderen Endbuchstaben für das gesamte Alphabet (wie soder noder y) oder einen mittleren Buchstaben (wie aoder e) zu finden, aber den meisten fehlten nur ein oder zwei Wörter t. Wörter werden manuell von wordhippo.com ausgewählt .

Ungolfed:

Probieren Sie es hier aus.

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

Ausgabe:

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 für +a+++. Ich schreibe gerne: P
Poke

1

PHP, 91 87 86 76 Bytes

basierend auf Jonathan Allans Wortliste :

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

ältere Versionen, 86 Bytes:

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

oder

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

Laufen Sie mit -nr.

Ausgabe

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

Für die seltsamen Worte siehe Ismaels Antwort

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.