Muchos usuarios de PPCG ayudaron con la creación de este desafío, tanto en el chat como en el Sandbox, específicamente Martin Ender , AdmBorkBork , Emigna y user202729
Nuestra comunidad ha encontrado necesario crear un conjunto de idiomas diseñados específicamente para el golf, "idiomas de golf" como los llamamos. Tales lenguajes han evolucionado desde el alguna vez brillante, ahora torpe GolfScript a los elegantes y concisos lenguajes como Jelly y Husk . Como podemos ver, estos lenguajes se hacen cada vez más cortos para un conjunto de tareas. Entonces, como los expertos obvios de los idiomas de golf, debemos diseñar un idioma juntos para vencer a cualquier otro idioma que se atreva a competir. ¡Presentamos Bugle!
Corneta: Desde el acrónimo BuGoL: Bu ILT Ir lfing L anguage.
Cómo funcionará este desafío
En caso de que no haya entendido lo que estoy aludiendo en la introducción, este desafío es un desafío de encadenamiento de respuestas en el que cada uno de nosotros aporta algo al intérprete de un nuevo lenguaje de golf, mejorando su capacidad de competir en PPCG con cada respuesta.
Publicaré la primera respuesta que consiste en la base de la especificación / intérprete de lenguaje, y todas las demás respuestas continuarán a partir de eso. Las nuevas presentaciones proporcionarán lo siguiente:
- Un cambio en las especificaciones del idioma.
- Un intérprete actualizado que cumple exactamente lo que se establece en los cambios.
- La puntuación actualizada del idioma (más detalles en un momento)
Puede cambiar la especificación de una de tres maneras:
- Puedes agregar un solo comando
- Puedes agregar dos nuevos comandos
- Puede editar el comportamiento de un comando existente
Con respecto al nuevo intérprete, debe usar la última versión, escrita en Python. No tiene que ser golfizado. Cada comando agregado previamente debe ser comprobable con el último intérprete, así como con los comandos más nuevos (el que agregue). Tampoco debe usar lenguaje ofensivo en ningún momento al actualizar el intérprete, como en comentarios o literales de cadena, etc.
Los comandos agregados pueden hacer lo que desee . Los únicos requisitos son:
- No produce resultados ofensivos.
- No es lo mismo que otro comando
- No evita que se complete uno de los desafíos de muestra
Aparte de estos, puede ser tan específico o tan general como desee. También puede ser cualquier personaje que quieras. Si no está seguro de si su incorporación constituye un 'nuevo comando', no dude en preguntar en los comentarios.
La puntuación del idioma
Es posible que haya notado que tiene que incluir el puntaje del idioma en todas las presentaciones nuevas. Su puntaje es lo que evita que este desafío sea para siempre, y se define de la siguiente manera:
La puntuación actual es la suma de los recuentos de bytes necesarios para que el idioma complete las 20 tareas siguientes.
Para cada una de las tareas, se aplican las reglas estándar de E / S , al igual que las lagunas estándar .
Las 20 tareas:
- "¡Hola Mundo!" - Salida de la cadena
Hello, World!
- 1, 2, Fizz, 4, Zumbido : emite cada número entero de 1 a 100 (inclusive) en una línea separada, con múltiplos de 3 reemplazados por
Fizz
, múltiplos de 5 reemplazados porBuzz
y múltiplos de ambos porFizzBuzz
- Produzca el número 2014 sin ningún número en su código fuente : envíe el número 2014 sin usar ninguno de los caracteres
0123456789
del código fuente, sin acceder a variables externas o semillas aleatorias - Ofuscado Hello World - Salida de la cadena
Hello, World!
, sin necesidad de utilizar cualquiera de los personajes de al menos dos de los siguientes conjuntos:hlwd
,eor01
y27
(mayúsculas y minúsculas) Cante feliz cumpleaños a su lenguaje de programación favorito : en el idioma que elija, envíe lo siguiente:
Happy Birthday to You Happy Birthday to You Happy Birthday Dear [the name of your favourite programming language] Happy Birthday to You
No somos ajenos al código de golf, conoces las reglas, y yo también - Saco la letra completa de "Never Gonna Give You Up"
- Mostrar el signo : dado un número, imprima -1 si es negativo, 0 si es 0 o 1 si es positivo
- Conjetura de Collatz (OEIS A006577) : a partir de un número entero, divídalo por 2 si es par, o multiplíquelo por 3 y agregue 1 si es impar, y repita el proceso hasta llegar a 1. La salida debe ser el número de iteraciones. te lleva a llegar a 1.
- Una matriz de desafíos # 1: matrices alternativas : dada una matriz de enteros, verifique si todos los elementos indexados pares son iguales, y todos los elementos indexados impares son iguales, y genera un valor verdadero o falso en consecuencia
- ¿Soy un conjunto insignificante? - Dado un conjunto de enteros, verifique si las diferencias absolutas entre elementos consecutivos son todas menores o iguales a 1, y genera un valor verdadero o falso en consecuencia
- ¿Es este número un primo? - Dado un número entero positivo, escriba un programa completo para verificar si es primo y generar un valor verdadero o falso en consecuencia
- Soy un palindrome. ¿Eres tú? - Dada una cadena, verifique si es palíndromo, mientras que su programa / función también es palíndromo, y emite dos valores distintos y consistentes en consecuencia
- Suma los números en entrada estándar : toma una serie de números de STDIN y genera su suma.
- Encontrar el factorial : dado un número entero
n
, genera el producto de todos los enteros entre1
en
inclusive. - El código más corto para producir una salida infinita : sin ninguna entrada, produzca una salida infinita que, en teoría, nunca dejará de salir.
- Hornee un trozo de Pi - Imprima este texto exacto:
()()()()()()
|\3.1415926|
|:\53589793|
\::\2384626|
\::\433832|
\::\79502|
\::\8841|
\::\971|
\::\69|
\::\3|
\__\|
- Encuentre el número más pequeño que no divide N : dado un entero positivo N, emite el entero positivo más pequeño que no divide N.
- ¿Es esto par o impar? - Dado un entero N, genera su paridad como valores de verdad / falsedad.
- Salida con la misma longitud que el código : escriba el código más corto cuya salida tiene la misma longitud que el código, donde la salida no es la misma que el código.
- ¡Golf un quine por un gran bien! - Escribe la quine más corta en tu idioma.
Para ser válido, una nueva presentación debe tener presentaciones de golf para al menos 2 de los problemas, al menos 1 byte para cada uno. Puede aumentar la duración de otras presentaciones, pero la puntuación total debe disminuir en al menos 2 por respuesta. Además, considere incluir un enlace a los programas actualizados. Las soluciones actualizadas no deben funcionar cuando se ejecutan con una versión anterior del intérprete.
Como obtener cookies
Tengo una lista de 5 desafíos, que no es obligatorio intentar, y no influyen en su puntaje, pero son simplemente desafíos adicionales para probar si Bugle es lo suficientemente capaz. Siéntase libre de incluir una solución a cualquier número de estos en su respuesta:
- Crea un auto intérprete
- Crear una quine capaz de carga útil
- Cofectar una cadena
- Hiperprogramación: N + N, N × N, N ^ N, todo en uno
- "NUDO" o "NO"?
No se incluyen descripciones, ya que no son necesarias para que todos puedan competir en el desafío.
Cómo ganar
Una vez que se ha alcanzado el puntaje mínimo ( creemos que es 16, aunque cualquier intento de jugar golf que sea muy bueno) ha sido alcanzado, obviamente la cadena ha terminado porque las soluciones no pueden obtener un mejor puntaje. Una vez que se han alcanzado los 16, el desafío se mantiene vivo durante 1 mes después, para dar a cualquiera la oportunidad de jugar al golf con las soluciones. Después de que este mes haya pasado, el desafío ha terminado.
Una vez que termine el desafío, migraré el intérprete a un repositorio de GitHub y pasaré por las maquinaciones habituales de liberar un lenguaje estable. También puede comenzar a publicar soluciones a los desafíos en PPCG en este momento, utilizando dicho lenguaje, pero intente no inundar la página principal con respuestas. En cambio, extiéndalos durante un período de tiempo.
Formateo
Para que la información sea más fácil de encontrar en su respuesta, formateela de la siguiente manera:
# [N]. [Score]
[New command + description]
[Interpreter/link to interpreter]
[Link to programs]
¿Dónde [N]
está su número de respuesta (1 para el primero, 2 para el segundo, etc.)
Reglas
- Debes esperar 3 horas entre publicar respuestas
- No puede publicar dos veces seguidas, a menos que no se haya publicado ninguna respuesta durante 10 días (exactamente 240 horas)
- No puede eliminar comandos anteriores.
- Su intérprete no tiene que jugar golf, y su recuento de bytes es completamente irrelevante aquí.
- Si alguien sugiere un golf a los programas mientras su respuesta es la más reciente, debe editar en los campos y actualizar su puntaje.
- También puede hacer esto cuando su respuesta esté en el medio de la cadena, siempre que su puntaje no sea más bajo que las respuestas posteriores.
- Abstenerse de responder a cualquier desafío PPCG existente usando este lenguaje, al menos hasta que el desafío haya terminado
- El intérprete está escrito en Python 3, y debería continuar así durante toda la cadena. Está prohibido cambiar el idioma.
- Nuevamente, para que sea válida, una nueva presentación debe tener presentaciones de golf para al menos 2 de los problemas, al menos 1 byte para cada uno.
¡Empecemos!
Hello, World!
, entonces son 19 bytes. Pero si el comportamiento del programa vacío cambia, dependiendo de la entrada, puede reducirse
for
bucles) están permitidas y se recomienda agregarlas