El alfabeto en los lenguajes de programación.

70

Nuestra tarea es, para cada letra del alfabeto (inglés), escribir un programa que imprima el alfabeto, en un idioma cuyo nombre comience con esa letra.

Entrada: ninguna

Salida:

abcdefghijklmnopqrstuvwxyz

línea nueva mayúscula y final opcional

reglas :

  • La métrica de puntuación es la longitud del nombre del lenguaje de programación , más la longitud del código. Por lo tanto, a C se le aplicará una "penalización" de 1, mientras que GolfScript se evaluará a una penalización de 10.
  • Un idioma / implementación por respuesta. Se alientan las respuestas múltiples.
  • Si la primera letra del nombre de un lenguaje de programación no es una letra en inglés, no debe coaccionarse en una. Se tratará como una carta separada (lo que significa menos competencia).
  • No se aceptarán respuestas hasta que cada letra en inglés tenga una solución.

Rankings actuales:

Dime si extraño a alguien.

Tabla de clasificación automática (experimental)

Joey Adams
fuente
1
¿Se nos permite imprimir basura en stderr?
Peter Taylor
@Peter Taylor: enloquece. Para responder a su pregunta, sí, imprimir basura en stderr está bien (siempre que stdout sea correcto).
Joey Adams
Funge es distinto de Befunge. ¡Seguramente mi pedanteísmo será recompensado en un sitio dedicado a hazañas!
tngreene
2
Es *0*5AB1Elo mismo que *o*sabie: P?
Urna de pulpo mágico

Respuestas:

13

K es para K , 12 caracteres -> Puntuación: 13

`0:_ci97+!26
Jesse Millikan
fuente
Seguramente puedes adaptar una de tus soluciones a A +, ¿verdad?
Joey
Configurar A + es un poco raro. Lo he hecho antes pero realmente no tengo ganas. (Owl, newLISP y zshell fueron llave en mano.)
Jesse Millikan
3
Supongo que es k2 o k3. en k4 / q, puedes hacerlo en 7 caracteres con 1 .Q.a;.
Aaron Davies
no necesita `0:o 1@en codegolf
ngn
25

P es (en realidad) para Piet - 57 codeles

Versión grande (tamaño del codel = 6)

p es para piet - grande

Versión pequeña (tamaño de codel = 1)

p es para piet - pequeño

Probado con el intérprete piet de Erik npiety desarrollado con Piet Creator .

Editar : Aquí hay una versión "traza" (generada con npiet -tpf) para que pueda ver cómo funciona.

La ejecución comienza en la esquina superior izquierda y rodea el borde en sentido horario. El borde superior y el borde derecho están configurados (calcular el valor de a(97) requiere bastantes códeles). El bucle comienza en el borde inferior y va al borde izquierdo. Cuando zse alcanza el valor de, el programa gira a la derecha en la sección transversal debajo de la primera Py termina.

Haga clic en la imagen para ampliar y ver detalles

Casey
fuente
Oooh, Piet siempre es agradable. Y no tienes un binario de Windows de Piet Creator funcionando, ¿verdad? (Era demasiado vago para buscar todas las dependencias y requisitos previos solo para jugar un poco de nuevo.)
Joey
¿Y no son en realidad 400 codeles y 57 codeles de codificación ? (Sin embargo, no creo que hayamos llegado a un consenso sobre cómo contar a Piet)
Joey
1
@Joey Veré si puedo preparar una versión de Piet Creator para Windows. Ha pasado un tiempo desde que lo probé allí. Tienes razón sobre los codeles. Si tuviera que colocar el programa en una línea, serían 57 códeles (más o menos), la versión anterior es más amigable para los ojos (como el espacio en blanco en otros idiomas). Quizás las presentaciones de Piet deberían tener fuentes mínimas y llamativas. Mejor decidimos, porque estoy planeando muchas más respuestas de Piet :)
Casey
Bueno, podría abrir una pregunta sobre meta para pedir una aclaración sobre cómo se debe manejar el código Piet :-). Hubiera enviado soluciones Piet también, hace mucho tiempo. Excepto que pietdev era bastante defectuoso y para Piet Creator necesitaba Qt y algunas otras cosas solo para construirlo ;-). Y usar un editor de mapas de bits es bastante ... engorroso ...
Joey el
@Joey Piet Creator todavía necesita varias mejoras importantes para ser realmente increíble, espero poder agregarlas pronto. Termino usando principalmente Piet Creator, y luego uso Paint o GIMP para mover bloques de color. Pietdev fue mi principal inspiración para PC. Obtener algunos comentarios en la PC sería genial, me subiré a esa compilación de Windows lo antes posible.
Casey
17

P es para Perl, 10 caracteres -> Puntuación: 14

print a..z
Ventero
fuente
28
¿Qué hay de say a..z?
mbx
14

Y es para Yoix , 44 caracteres → Puntuación: 48

int x;for(;++x<27;)yoix.stdio.putchar(96+x);
Joey
fuente
12

W es para espacios en blanco, 72 caracteres -> Puntuación: 82

ingrese la descripción de la imagen aquí

[Sp][Sp][Sp][Tab][Tab][Sp][Sp][Sp][Sp][Tab][LF][LF][Sp][Sp][Tab][Tab][LF][Sp][LF][Sp][Tab][LF][Sp][Sp][Sp][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][Sp][LF][Sp][Sp][Sp][Sp][Tab][Tab][Tab][Tab][Sp][Tab][Tab][LF][Tab][Sp][Sp][Tab][LF][Tab][Sp][Sp][Sp][LF][LF][Sp][LF][Tab][Tab][LF][LF][Sp][Sp][Sp][Sp][LF][LF][LF][LF]

¡Pasé años haciendo que esta estupidez funcionara anoche y luego descubrí que el espacio en blanco no se muestra como código aquí! Luego, mientras estaba de mal humor, mi conexión a Internet se apagó. Entonces, lo estoy publicando ahora solo para no desperdiciar una hora de mi vida anoche para que funcione.

Gareth
fuente
66
Pensé que era obvio por el comentario ahora eliminado junto con mi solución que nunca antes había escrito ningún espacio en blanco. Aparentemente no.
Gareth
@Mego ¿Hay alguna posibilidad de que me quiten mi nombre ya que no tenía nada que ver con eso?
Gareth
11

A es para APL,  14  11 caracteres / bytes * → puntaje 14

⎕UCS 96+⍳26

Esto funciona al menos en Dyalog y Nars2000 .


* APL se puede escribir en su propio juego de caracteres de un solo byte (heredado) que asigna símbolos APL a los valores superiores de 128 bytes. Por lo tanto, para fines de puntuación, un programa de N caracteres que solo usa caracteres ASCII y símbolos APL puede considerarse que tiene una longitud de N bytes.

jpjacobs
fuente
1
⎕atrabaja en APLX .
Adám
línea nueva mayúscula y final opcional, así ⎕Afunciona.
Adám
10

G es para Golfscript, 8 caracteres -> Puntuación: 18

123,97>+
Ventero
fuente
8

R es para R, 19 → Puntuación: 20

cat(letters,sep="")
Joey Adams
fuente
Alternativamente (20 caracteres): gato (letras, sep = "")
Paolo
¿No es lo letterssuficientemente bueno? No veo que la especificación que especifica la salida debe ser una cadena contigua. Claro, el ejemplo dado es de esa forma, pero ¿la 'nueva línea final es opcional'?
Gaffi
@Gaffi: Creo que mantuve otros idiomas con el mismo estándar en este hilo, a saber, la salida debe ser "abc ... xyz" exactamente, sin caracteres intermedios). Supongo que podría cambiar la regla y ganar mi propio concurso, pero eso no sería muy divertido.
Joey Adams
8

P es para Python 2, 33 caracteres -> Puntuación: 39

print'%c'*26%tuple(range(97,123))
JBernardo
fuente
1
Esta es la misma duración que print'abcdefghijklmnopqrstuvwxyz'...
nneonneo
@nneonneo Entonces ... ¡Sigue siendo el más pequeño! (compartiendo la posición con este otro código aburrido y trivial).
JBernardo
7

R es para Ruby, 13 caracteres -> Puntuación: 17

Una solución de Ruby 1.9 a Matma Rex se le ocurrió:

print *?a..?z

Mi solución original de Ruby 1.8 (15 caracteres -> Puntuación: 19):

$><<[*'a'..'z']
Ventero
fuente
¿Este no coincide con los criterios? La salida contiene caracteres adicionales. Además, si está bien, sería $><<[*?a..?z]para Ruby 1.9 (eliminando 2 caracteres).
Matma Rex
1
La versión correcta más corta que puedo concebir es print *?a..?z. Tiene la misma longitud y la que sugerí anteriormente. No podemos usar $><<porque <<tiene algunas reglas de precedencia extrañas y todo explota. No podemos usar po en putslugar de, printya que imprimen cada letra en una línea separada.
Matma Rex
Lo siento, debería haber mencionado que esto es para Ruby 1.8. En Ruby 1.8, Array#to_ses igual que Array#join, por lo que solo imprimirá el alfabeto sin caracteres adicionales. Pero su solución 1.9 es de hecho más corta.
Ventero
La salida es: codepad.org/atGFGVuQ
Nathan Osman
@George: su salida es de Ruby 1.8 (que se puede verificar aquí: codepad.org/pvyqzaPP ). Como menciona la publicación, esta es una solución para Ruby 1.9.
Ventero
7

F es para peces (> <>), 19 caracteres -> Puntuación: 23

¡Porque es un idioma malditamente hermoso!

30"`"1+::o&p&"y"(?;
jpjacobs
fuente
¿No es esta respuesta una puntuación de 22 porque <>>tiene solo tres caracteres, no cuatro? ¿Hay alguna razón por la que usaste el nombre más largo en la partitura?
pppery
@ppperry Bueno, el nombre del idioma no puede comenzar con una F y ser <><.
flornquake
1
El nombre del idioma es ><>, no<><
TuxCrafting
Esto no parece funcionar, solo imprime a. tio.run/##S8sszvj/39hAKUHJUNvKKl@tQE2pUknD3vr/fwA
Chris
6

O es para Owl , 11 caracteres -> Puntuación: 14

a[%)1+%z>]!
Jesse Millikan
fuente
6

S es para Scala, 16 caracteres => puntaje 21

'a'to'z'mkString

18 caracteres => puntaje 23

'a'to'z'mkString""

22 caracteres => puntaje 27

('a'to'z')map(print _)

Gareth
fuente
6

B es para Befunge → 18 caracteres

"a"::,1+10p"y"`#@_
ninjalj
fuente
Se puede hacer en 16 caracteres , para una puntuación de 23.
James Holderness
6

P es para Python 2, 42 caracteres → Puntuación: 48

import string
print string.ascii_lowercase
Método de ayuda
fuente
66
print 'abcdefhijklmnopqrstuvwxyz'
Charles Beattie
77
print'abcdefhijklmnopqrstuvwxyz'
nneonneo
6

D es para dc, 17 caracteres → Puntuación: 19

97[dP1+dBD>x]dsxx
ninjalj
fuente
genera "ab" y se cierra en la versión de CC 1.06.95
Wossname
@Wossname echo '97[dP1+dBD>x]dsxx' | dcfunciona en la versión de cc 1.07.1
BlackCap
6

C es para C, 36 35 caracteres → Puntuación: 36

main(a){for(;putchar(a+++64)-90;);}
Joey
fuente
Puede soltar 2 caracteres asumiendo que un (argc) es igual a uno en lugar de tener que inicializarlo.
Joey Adams
Pero esto ni siquiera compila ...
desaceleratedcaviar
Lo mejor que pude compilar fue 59, o 42 sin incluir: #include <stdio.h> main () {for (int a = 27; - a;) putchar (96 + a);}
deceleratedcaviar
Daniel, funciona con MSVC 10 aquí.
Joey
5

W es para Windows PowerShell, 22 caracteres → Puntuación: 40

-join[char[]](97..122)
Joey
fuente
1
Hmm, no estoy seguro de si hacer esto W o P.
Joey Adams
1
Técnicamente es W, ya que el nombre correcto del idioma (y producto) es Windows PowerShell . Sí, también me molesta.
Joey
5

P es para Python 2, 41 caracteres → Puntuación: 47

print''.join(chr(i+97)for i in range(26))
Oleh Prypin
fuente
4

B es para bc - 2 + 28 = 30

"abcdefghijklmnopqrstuvwxyz"
Joey Adams
fuente
4

L es para Logo, 26 caracteres → Puntuación: 30

for[i 97 122][type char i]
Por favor levantese
fuente
4

T es para Thue, 35 caracteres → Puntuación: 39

0::=~abcdefghijklmnopqrstuvwxyz
::=
0
Joey
fuente
4

A es para AppleScript, 41 -> Puntuación: 52

display alert"abcdefghijklmnopqrstuvwxyz"
Lowjacker
fuente
1
Sé que esto ha pasado mucho tiempo desde la publicación, pero puede usarlo "abcdefghijklmnopqrstuvwxyz", ya que el valor de retorno se envía al panel de resultados.
Addison Crump
4

M para Matlab, 13 caracteres, puntaje 19

disp('a':'z')

M para Matlab, 18 caracteres, puntaje 24

disp(char(97:122))
jpjacobs
fuente
1
No tengo a mano matlab, pero creo que debes disp(..)evitar que esto salga ans = .
Nabb
Correcto, cambiado en la respuesta.
jpjacobs
4

B es para BrainF ***, 38 + 9 = 47

++++[>++++++<-]>[->+>++++<<]>++[->+.<]

Se puede reducir a 31 + 9 = 40 , si las celdas se ajustan a 256:

++[>+>++<<+++++]>----->[<.+>++]
Ry-
fuente
4

B es para Bash: 4 + 16 = 20

printf %s {a..z}

o 15 con solo:

echo {a..z}

si a b c ...se permite la salida del formulario (como se ve en muchas otras respuestas).

Eelvex
fuente
No lo creo. El avance de línea es opcional, la salida es "abcdefghijklmnopqrstuvwxyz"
usuario desconocido el
3

I es para Inform 6 , 41 + 6 = 47

[Main i;for(i=26:i--:)print(char)'z'-i;];
Joey Adams
fuente
3

U es para Unlambda - 8 + 79 = 87

``````````````````````````.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.zr
Joey Adams
fuente
3

J es para J, 14 caracteres -> Puntuación: 15

echo u:97+i.26
Jesse Millikan
fuente
¿Por qué molestarse con echo? u:97+i.26es un programa completo de J.
Gregory Higley
55
Porque eso no tiene salida cuando se ejecuta como un script (para mí, de todos modos).
Jesse Millikan
3

B, 45 -> Puntuación: 46

main(){auto i;i=95;while(i++<122)putchar(i);}
Lowjacker
fuente