En esta pregunta hablaré sobre los programas como cadenas, se trata de cadenas de bytes, no de caracteres. La forma en que se representa o muestra el programa resultante no es importante para este desafío, solo importa cómo aparece en la memoria.
Un programa prístino es un programa que, cuando se ejecuta, no produce un error, sin embargo, lo hará siempre que una subcadena continua de tamaño n , donde 1 ≤ n < | S | , es removido.
Un programa sucia es el contrario, es un programa que cuando es ejecutado hace error, sin embargo cada vez una subcadena continua de tamaño n , donde 1 ≤ n < | S | , se elimina, no tiene error.
Para este desafío, un error es la salida no vacía a STDERR.
Su desafío es escribir un programa sucio que use tantos bytes únicos como sea posible. Esto significa que obtendrá un punto por cada byte único que aparece en su código con una puntuación más alta que es mejor. El puntaje máximo es por lo tanto 256.
fuente
Respuestas:
Unario , 14 bytes
Esto codifica el programa brainfuck
[
, que errores debido a paréntesis incomparables.Eliminación de bytes resultarán en
>
,<
,+
,-
,.
,,
o el programa de vacío, que son programas brainfuck válidos.fuente
R , 3 bytes
Pruébalo en línea!
El nombre de un objeto es un programa válido en R.
qrt
no es el nombre de nada, por lo que devuelve un error.q
es la función para dejar de fumarqr
es la función de descomposición QRrt
es la función de muestreo de distribución tqt
es la distribución t CDF inversat
es la función de transposiciónfuente
0-9cqtCDFIT
, por lo tanto, cualquier programa debe comenzar concm
,qf
,qr
,qt
,ts
oIm
. La longitud tres posibilidades sonqrf
,qrm
,qrt
,qts
ytsd
, y sólo uno de ellos es sucia (los otros no pueden ser extendidos o bien para que sean sucia ya que no hay funcionesrm*
,rf*
,ts*
,sd*
)Gelatina ,
4 5 6 7 8 1011 bytesPruébalo en línea!
Verificarlo
Intenta agregar una cadena con un número entero.
Algunos de los posibles subprogramas:
“a”
Es una cadena literal.“a
es el mismo literal de cadena.“
Es la cadena vacía.“a”;
concatena "a" consigo mismo.... demasiados para enumerarlos a todos.
fuente
Políglota, 3 bytes.
Trabaja en:
En JavaScript, lanza SyntaxError: token inesperado: literal numérico o un error similar.
Todas las demás cadenas son literales numéricos válidos ( 1 , 2 o 12 ).
En GHCi esto arroja
Esto se debe a que intenta aplicar
1
a2
función, sin embargo, no puede. Cuando se elimina cualquier parte de esto, simplemente se convierte en un literal numérico.fuente
Python 2 , 2 bytes
Carácter inesperado después del carácter de continuación de línea
\
seguido de cualquiera de ¡123456789 #
Pruébelo en línea!
Número octal inválido
0
seguido de cualquiera de ¡89
Pruébelo en línea!
Sangría inesperada
o
\t
seguido de cualquiera de ¡123456789\
Pruébelo en línea!
fuente
Python 2/3 , 3 bytes
O
Pruébalo en línea!
En python "\ f" es lo mismo que "\ x0c" y es un carácter de fuente de formulario . Esto significa que indica que una impresora vaya a la siguiente línea.
Si una expresión de Python comienza o termina con
\f
, básicamente se ignora, por lo que\f2
es una expresión válida.El
4
y2
puede ser cualquier número 0-9. Sin embargo, para que el primer byte sea0
solo es válido en Python 2.7.15, como02
se hizo una declaración legal de2
.Entonces, la expresión en sí falla con un error de sintaxis, porque hay dos números separados por un espacio en blanco. Sin embargo, cualquier reducción se pone
\f
al principio o al final, donde no importa, o crea42
cuál es válido.(Vale la pena señalar que en IDLE este archivo se abre como "42").
Fuente de explicación del feed del formulario: /programming//a/26184126
fuente
\f
. Aquí hay un enlace para probarlo en línea desde el que puede obtener una respuesta preformateada.Dyalog APL , 5 bytes ( SBCS )
Pruébalo en línea! o prueba todos los programas posibles
Seguro que hay mejores respuestas aburridas, pero esta es la mejor no aburrida que he encontrado
Se requiere SBCS ya que Dyalog Classic parece tener siempre salida en STDERR, haciéndolo inutilizable.
fuente