Reto:
En el lenguaje de programación que elija, no ingrese y envíe el nombre de su lenguaje de programación.
Lo suficientemente justo, ¿verdad?
Restricciones
- No puede usar ningún carácter que esté incluido en el nombre de su lenguaje de programación en su código. Por ejemplo, si uso Batch, no debo usar los caracteres 'B' 'a' t '' c '' h 'en mi código. Tenga en cuenta que esto distingue entre mayúsculas y minúsculas. Todavía puedo usar el carácter 'b' porque es diferente de 'B'.
- Puede tener "salida basura" antes o después del nombre del idioma
- El número de versión no cuenta como parte del nombre del idioma. Por ejemplo, puedo usar el número 3 en el código en mi respuesta si está en Python 3
- La salida del nombre del lenguaje de programación no distingue entre mayúsculas y minúsculas.
- Está prohibido forzar todas las combinaciones de letras posibles y esperar que obtenga el nombre de su idioma.
Resultados de ejemplo: (digamos que mi lenguaje de programación se llama Language) (✔ si es válido, de lo contrario ✖)
Language
✔Body language is a type of non-verbal communication in which physical behavior, as opposed to words, is used to express or convey information. Such behavior includes facial expressions, body posture, gestures, eye movement, touch and the use of space.
✔Language 2.0 - © 1078 AD some company
✔foobar
✖
Este es el código de golf, por lo tanto, el código más corto gana.
--version
no está permitido "?Respuestas:
Salidas a STDERR
La salida a STDERR ahora está en + 33 / -21 como un valor predeterminado permitido, que es positivo pero impugnado. Esta es una respuesta CW para recopilar respuestas que solo invocan un error en un idioma donde los mensajes de error incluyen el nombre del idioma.
Haskell, 1 byte
Error:
Lua, 1 byte
Error:
(el nombre del archivo no es importante)
Lote, 1 byte
Error:
tinylisp, 5 bytes
Error:
R, 1 byte
Error:
Código de bytes de Java, 0 bytes
Error:
Groovy, 1 byte
Tenga en cuenta que
a
se puede reemplazar con cualquier otro personajeError:
MATLAB, 1 byte
Error:
PHP, 3 bytes
Error:
CJam, 1 byte
Error:
Ramita, 2 bytes
Twig es un lenguaje de plantilla escrito en PHP. Es posible que este sea un políglota.
Error:
El mensaje varía según el programa que elija.
SILOS , 2 bytes
Pruébalo en línea! Invoca trivialmente el comportamiento indocumentado. Silos es el nombre de la lengua.
Python, 6 bytes
Como la restricción de caracteres no distingue entre mayúsculas y minúsculas, y la salida no tiene que estar en el caso correcto, esta es una respuesta válida. El mensaje de error que produce es algo como esto:
Pruébalo en línea! (salidas a la pestaña 'depurar')
JavaScript, 10 bytes
Esto produce el siguiente mensaje de error o similar en todos los entornos:
QBIC , 6 bytes
En 6 bytes, podemos poner el error QBIC encontrado: 9 en la pantalla, lo que significa un error fuera de límites.
ForceLang, 2 bytes
Error producido:
Pip, 5 bytes
(Nota: esto funciona en la versión actual a partir de este escrito, 0.17.09.01 . No hay garantías de que el intérprete no cambie para manejar este error de manera diferente en el futuro).
Intenta que la expresión regular coincida con un patrón sintácticamente inválido. El error producido se verá así:
Stax, 2 bytes
Error:
zh
También funciona.tinta, 1 byte
~
al comienzo de una línea marca que la línea es una declaración a ejecutar, en lugar de texto a imprimir. A partir de la versión de inklecate que utilice TIO, si no hay nada después~
, el intérprete falla con el siguiente error:fuente
<??
será más efectivo y no se puede deshabilitar.SmileBASIC, 11 bytes
Equivalente a
SPSET 0,1474
. Establece el sprite 0 en la definición 1474, que es el logotipo de SmileBASIC.fuente
MATL , 1 byte
La salida es a través de STDERR, que está permitido por defecto .
La salida del compilador fuera de línea es
O pruébalo en línea! (expanda la sección "depuración").
fuente
X
oZ
. Esto se debe a queX
,Y
oZ
son prefijos de nombres de funciones de dos caracteres, por lo que aY
por sí mismo no es válidoR, 1 byte:
T
es un alias para la constanteTRUE
. Entonces la salida para lo anterior es:Como se permite la basura alrededor del nombre, la "R" allí es el nombre del idioma.
( Como se señaló en un comentario en otra parte , prácticamente cualquier letra y muchos glifos funcionarán igual de bien porque activan el mensaje "Error: ...", que contiene "r").
fuente
HTML,
2420 bytesHTML, 16 bytes
Como señaló @Bob , los navegadores modernos reconocerán las entidades HTML sin punto y coma, aunque es un HTML técnicamente inválido. Por supuesto, es perfectamente válido para el golf de código.
HTML, 4 bytes
Y, por supuesto, la respuesta poco interesante.
Además, vea mi respuesta CSS .
fuente
HTML
. Puede guardar cuatro caracteres adicionales soltando los puntos y comas, a costa de ser un HTML técnicamente inválido (pero aún funciona en navegadores modernos).HTML
cuenta?html
debe ser válido, reduciendo la puntuación en 12 bytes.Vim, 0 bytes
Cuando inicia Vim, el editor muestra una pantalla de presentación que se ve así:
Puedes ver que dice
Vim
aquí:Respuesta anterior:
Vim, 1 byte
En Vim 8, al presionar se mostrará
Type :quit<Enter> to exit Vim
en la última línea. No estoy completamente seguro si esto cuenta.fuente
Python, 15 bytes
Pitón 2 (15)
Concatena las cadenas utiliza el octal
150
que esh
y"elp()"
, y corre el resultado. Esto imprime elhelp()
comando que dice"Welcome to Python 3.5's help utility!"
, cumpliendo los requisitos.Pitón 3 (17)
Pruébalo en línea!
fuente
help
cuenta, solo funciona en un entorno REPL.p
está permitido peroP
no lo está. Regla 1.C, 0 bytes.
Pruébalo en línea!
fuente
c
venido de fuentes extremadamente dependientes de la implementación. Hubiera sido mejor si al menos provocaras un mensaje que contienec
algún resultado repetitivo.¿Eh ?, 0 bytes
(no, no hay nada en ese bloque de código)
El idioma se llama por su salida, así que ...
En la implementación que verifiqué , el intérprete toma la longitud mod 8 de cada línea de un archivo determinado y cambia según el resultado. Para cero, se imprime
Huh?
. Como elimina las nuevas líneas finales, también puede hacer una\n
versión de 1 byte ( ).Tenga en cuenta que no se está enviando a stderr o casos de intercambio o cualquier otro truco. Es solo que el muy confundido intérprete de Huh finalmente fue útil.
fuente
V , 2 bytes
Pruébalo en línea!
La respuesta obvia es:
Pruébalo en línea!
Que es "Insertar la letra 'v', y alternar mayúsculas y minúsculas". Sin embargo, dado que permite la salida de basura antes / después del nombre del idioma, esto también funciona.
El
¬
comando toma dos caracteres para la entrada e inserta cada carácter ASCII entre ellos. Si no proporcionamos el segundo carácter, el valor predeterminado es automáticamenteÿ
(ASCII 0xff), por lo que este programa inserta todos los caracteres en la codificación latin1 entreU
yÿ
.fuente
brainfuck , 54 bytes
Salidas
brainfuck
, suponiendo que una cinta de 8 bits se abra a la izquierda. Pruébalo en línea!Como siempre, los créditos parciales van a Hello, World de @primo! contestar .
Alternativas con diferentes carcasas
Brainfuck (62 bytes):
BrainFuck (68 bytes):
fuente
MATLAB, 3 bytes
La salida es la siguiente. La información irrelevante ha sido reemplazada por
[...]
). Algunas partes de la salida pueden cambiar según la versión, las cajas de herramientas instaladas, etc.fuente
Octave
, así que no puedes usarv
ye
.Python,
2753494845 bytes-3 bytes de @ wizzwizz4
Imprime el siguiente texto, que tiene "Python" en la primera línea.
fuente
HELP()
oHELP(HELP)
es más cortoimport this
.Python 2 (1 byte)
salida...:
fuente
0xa0
(nbsp) o básicamente cualquier otro byte alto que desee y obtendrá el mismo error.> <> ,
1210 bytesEsto imprimirá continuamente> <> hasta que el intérprete se quede sin espacio.
Pruébalo en línea!
Versión de 12 bytes a continuación para aquellos que gustan de una salida limpia. Recomendado por Aaron (sin error, 1 salida)
fuente
"-o-o-o;_!\ _!
JAVA, 1 byte
La salida a stderr es:
fuente
CSS, 25 bytes
Tenga en cuenta que se agrega marcado adicional a los fragmentos de desbordamiento de pila, lo que hace que "CSS" se muestre más de una vez. Abrir un
.html
archivo con contenidopara ver el resultado según lo previsto.
fuente
golpe CLI, 9
Si desea un script real y no solo un comando en la línea de comandos interactiva, puede hacer esto:
bash, 13
Salidas
/bin/bash
fuente
echo $0
debería funcionarx $0
funciona, suponiendo que no haya un ejecutable llamado x en la ruta. En cuyo caso, sustituya cualquier otra letra, dígito o carácter no especial.$'ec\x68o' $0
cura ese detalle.C, 15 bytes
C compilado en una máquina Linux con una configuración regional alemana:
main(){main();}
Se ejecutará en un desbordamiento de pila e imprimirá
Speicherzugriffsfehler
(alemán para el fallo de segmentación) en stderr.fuente
dc, 6
Salidas
dc
.Pruébalo en línea .
fuente
Pip , 8 bytes
Toma el carácter
I
y loWR
aps enC
hr (80
), lo que resulta enPIP
. Pruébalo en línea!Usar el se
I
siente un poco como hacer trampa, así que aquí hay dos soluciones de 9 bytes que no usan ninguno dePpIi
:Ambas salidas
pip
. Estoy particularmente satisfecho con el segundo:Para una capitalización adecuada, necesitamos una solución de 10 bytes :
Cómo funciona éste se deja como ejercicio para el lector. ; ^)
fuente
C #,
6067 bytesfuente
\u0043
y alConsole
pero no puedo usarC
según las reglas de la pregunta. En C # puede usar secuencias de escape Unicode en identificadores._=>System.\u0043onsole.Write("\x43\x23");
brainfuck, 105 bytes
Pruébalo en línea aquí
fuente
---
en su rebaja?R , 11 bytes
Pruébalo en línea!
fuente
version$l
9 bytesversion
sea suficiente (7 bytes)Adelante, 5 bytes
Pruébalo en línea
Imprime una lista de cada palabra en el idioma.
Forth
está en la lista (primera palabra en la línea 125), aunque no sé qué hace.fuente
Hexagonía , 19 bytes.
Básicamente un flujo lineal directo envuelto dentro del hexágono.
¡Pruebe esta solución poco interesante de 19 bytes en línea!
28 bytes más interesantes:
Pruébalo en línea!
Esto usa el pequeño
h
, que está permitido. Utiliza el IP1 (Inicial es 0) como una "función" que hace "Decrementar e imprimir como char".Vista ampliada
Guarda
I
en la memoria, vaya al siguiente puntero de instrucciones con]
, luego IP1 se ejecuta desde la esquina NE en dirección SE y golpea..>
que dirige a E, envuelto a las 5 no-operaciones inferiores.
y luego a(
(decremento),;
(imprimir como char) y entonces[
que vuelve a IP0.IP0 comienza a leer desde donde se detuvo
f
, pasa por el no-op.
y al medio]
que ejecuta la "función" de nuevo: IP1 comienza desde donde se detuvo y golpea el no-op,.
luego se$
salta>
y vuelve a pasar por la parte inferior. para imprimire
.El programa sigue haciendo cosas así. Descubrí que podría haber impreso simplemente
n
llamando a la función nuevamente después de imprimiro
. Mm ... no se me ocurren formas de acortar esto aún más, aunque reemplazo 1 byte por no-op con este descubrimiento.¡Déjame un comentario si quieres ver diagramas en esta explicación!
fuente
J, 2 bytes
a.
devuelve el alfabeto del lenguaje J, una lista integrada de todos los bytes.Mi original: 4 bytes
Esto me parece genial. La raíz cuadrada (
%:
) del negativo 1 (_1
) es i (0j1
).fuente
a.
. Imprime el alfabeto, que obviamente incluye 'J'. Sin embargoBÁSICO (ZX Spectrum),
42 bytestachado 4 sigue siendo regular 4
Guardado 2 bytes gracias a @ShaunBebbers.
Nota: en el juego de caracteres ZX Spectrum, estos bytes se muestran como
Cuando ingresa esto, Spectrum comienza analizando un número opcional seguido de una línea de código. Normalmente, el número de línea es lo
1..9999
que hace que el código se agregue al programa almacenado. Sin embargo, si no se proporciona un número de línea, el código se ejecuta inmediatamente. Desafortunadamente, un error en Spectrum significa que confunde un número de línea cero con ningún número de línea, pero aún intenta ejecutar el cero como parte de la línea de código, lo cual es ilegal, causando el error.La versión anterior de 4 bytes genera un error verdadero en lugar de depender de un error de interpretación:
Nota: en el juego de caracteres ZX Spectrum, estos bytes se muestran como
que salidas
porque la cadena vacía no es una expresión numérica válida. (Por supuesto, podría haber usado cualquier declaración que tome un solo número entero). Si esta respuesta es inaceptable, entonces para 6 bytes puede escribir un programa que consiste en una sola línea con una de las palabras clave que no acepta argumentos, luego use
POKE
para reemplazar con una palabra clave ilegal, luego intente conRUN
el programa.fuente
0 REM
produce el mismo errorC
2420 Bytes (Clang 3.8.1)Gracias a @squeamish ossifrage por ayudarme a ahorrar 4 bytes.
fuente
putchar(67);
?printf('c')
también no sería válido? No está permitido usar mayúsculas "C", pero está en minúsculas y el resultado no distingue entre mayúsculas y minúsculas.printf
necesita una,char *
así que necesito usarla""
Vim, 3 bytes
Pruébalo en línea!
Esto abre el archivo de ayuda predeterminado y genera:
fuente