PowerShell v3 +, 60 78 67 Bytes
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
OKAY. Dieses Mal habe ich die Spezifikation tatsächlich gelesen, verstanden und befolgt. Versprechen. : D
Übernimmt das Array 65..90und durchläuft jedes Element |%{...}. Bei jeder Iteration wird eine neue Zeichenfolge mithilfe von Verkettung, Indizierung und Multiplikation erstellt.
Zuerst nehmen wir die aktuelle Nummer und charwandeln sie in einen ASCII-Buchstaben um. Das ist mit einem anderen Zeichen verknüpft, basierend auf der Indizierung in der Zeichenfolge, '.,'ob es sich um ein Komma handelt 90oder nicht Z.. Das ist eine Zeichenfolge, die verkettet wird " ", um die Buchstaben durch Leerzeichen zu trennen, und eine Zeichenfolgenmultiplikation "`n"basierend auf dem Booleschen Wert, um festzustellen, ob das aktuelle Element -indas angegebene Array ist (dh ob ein Zeilenumbruchzeichen verkettet werden muss). Die resultierende Zeichenfolge verbleibt in der Pipeline.
Diese Zeichenfolgen werden in Parens eingekapselt und -joinzu einer neuen Zeichenfolge zusammengefasst, die dann ebenfalls in der Pipeline verbleibt und Write-Outputam Ende implizit das Ergebnis ausgibt. Da `ndie Zeichenfolge vorhanden ist, wird sie beim Drucken automatisch in Zeilenumbrüche konvertiert.
Benötigt v3 + für den -inOperator. Verfügt über ein Leerzeichen in jeder Zeile, was gemäß den Herausforderungsspezifikationen in Ordnung ist.
Beispiel
PS C:\Tools\Scripts\golfing> .\now-i-know-my-abc.ps1
A, B, C, D, E, F, G,
H, I, J, K, L, M, N, O, P,
Q, R, S,
T, U, V,
W, X, Y, Z.
/(?=[HQTW])/