PowerShell v3 +, 60 78 67 bytes
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
OKAY. Esta vez he leído, entendido y seguido las especificaciones. Promesa. :RE
Toma la matriz 65..90y recorre cada elemento |%{...}. Cada iteración, estamos construyendo una nueva cadena usando concatenación, indexación y multiplicación.
Primero, tomamos el número actual y lo charemitimos para convertirlo en una letra ASCII. Eso se concatena con otro carácter, basado en la indexación en la cadena '.,'si estamos 90o no (es decir, para tener en cuenta Z.mientras todo el resto son comas). Esa es una cadena concatenada " "para separar las letras en el espacio y la multiplicación de cadenas "`n"basada en el valor booleano para determinar si el elemento actual es -inla matriz especificada (es decir, si necesitamos concatenar en un carácter de nueva línea). La cadena resultante se deja en la tubería.
Esas cadenas se encapsulan en parens y se -joineditan juntas en una nueva cadena, que luego también se deja en la tubería e implícita Write-Outputal final imprime el resultado. Como tenemos `nen la cadena, se convierte automáticamente en nuevas líneas al imprimir.
Requiere v3 + para el -inoperador. Tiene un espacio final en cada línea, lo cual está bien según las especificaciones del desafío.
Ejemplo
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])/