Su envío debe tomar una lista de números (en cualquier formato de lista que admita su idioma, o utilizando múltiples parámetros de función / línea de comando) o una cadena de números separados por cualquier carácter que no lo sea 0123456789
. En un idioma, debe agregarlos todos y generar la suma. En otro idioma, debe darles salida restados unos de otros en orden. Ejemplo:
12
5
7
2
En un idioma, debe generar 26
, y en otro debe generar -2
. Tenga en cuenta que todos los números ingresados serán enteros positivos menores que 100
. Nunca habrá más que 20
números proporcionados, por lo que nunca tendrá una salida mayor 2000
o menor que-1899
. ¿Alguna pregunta? ¡Comenta abajo!
[code-golf] -[polyglot]
?Respuestas:
Jelly / 05AB1E , 3 bytes
Este es un hexdump (xxd) del programa enviado.
Pruébalo en línea!
Jalea: Suma
Jelly usa la página de códigos Jelly , por lo que ve los siguientes caracteres.
Pruébalo en línea!
Cómo funciona
05AB1E: diferencia
05AB1E usa Windows-1252 , por lo que ve los siguientes caracteres.
Pruébalo en línea!
Cómo funciona
fuente
Python 2/3, 52 bytes
int(1-(1/2)*4)
regresa1
en Python 2 porque1/2
evalúa primero a0
, y luego0 * 4 = 0
.int(1-(1/2)*4)
regresa-1
en Python 3 porque1/2
evalúa primero a0.5
, y luegoint(0.5 * 4) = int(2.0) = 2
.fuente
C y C ++ (ambos de GCC),
817573 bytesToma un puntero a la matriz y la longitud.
Explicación: sigo usando la explicación de @Steadybox: p En C,
auto d=.5
declara una variable entera con la clase de almacenamiento automático (que es la predeterminada), que luego se inicializa a 0, mientras que en C ++ 11 declara un doble, que se inicializa a 0.5.Lenguaje C - plus: ¡ Pruébelo en línea!
C ++ - sin lenguaje: ¡ Pruébelo en línea!
fuente
05AB1E / Jelly , 5 bytes
Pruébalo en línea! (05AB1E) ¡
Pruébelo en línea! (Jalea)
05AB1E ve :
Explicación:Jelly ve :
Explicación:fuente
7f
.Actualmente / Jelly , 4 bytes
Este es un hexdump (xxd) del programa enviado. No se puede probar en forma cruda en línea; TIO no es compatible con la codificación CP437.
En realidad: suma
En realidad usa CP 437 , por lo que ve los siguientes caracteres.
Pruébalo en línea!
Cómo funciona
Jalea: diferencia
Jelly usa la página de códigos Jelly , por lo que ve los siguientes caracteres.
Pruébalo en línea!
Cómo funciona
fuente
actually, Jelly.
:)ṛ
:)ü
asignado a la función perfecta> _>jelly, actually
.Python 2 y 3,
4441 bytesToma números separados por espacios.
-3 bytes gracias a @JonathanAllan
Pruébelo en línea: Python 2 (menos) Python 3 (más)
fuente
'-+'[1/2>0]
para guardar tres bytes.CJam / Jelly , 6 bytes
CJam
Pruébalo en línea!
Jalea
(usando UTF-8, no la página de códigos Jelly)
q~:-
es el enlace de ayuda. Como no se llama, realmente no importa lo que haga.S
calcula la suma de una matriz.Pruébalo en línea!
fuente
q~:-½S
. Desafortunadamente, el arreglo (q~:-e#\x7fS
) es más grande. Pruébalo en línea! (CJam) y pruébalo en línea! , cada uno con su propia codificación para probarlo usted mismo.JavaScript / Cubix, 36 bytes
¡Intentalo!
La función de JavaScript se puede probar usando el fragmento a continuación, el programa Cubix se puede probar aquí .
¿Como funciona esto?
JavaScript
La primera línea es un comentario de línea a JavaScript, ya que comienza con dos barras diagonales, por lo que JavaScript solo ve la línea inferior (
a=>eval(a.join`-`)
), que toma una matriz como entrada, la une con signos menos en el medio y luego la ejecuta como código, lo que resulta en La sustracción de todos los elementos de la matriz.Cubix
Cubix ve el siguiente cubo (observe que Cubix ignora todos los espacios en blanco):
El principio
La IP comienza en la tercera línea, apuntando hacia el este. Toca el
'I'
comando, que toma un número de la entrada y lo empuja a la pila. Luego, se redirige'^'
al sum-loop.Sum-loop
Eliminé todos los caracteres que no forman parte del bucle de suma y los reemplacé por no-ops (
'.'
). El IP llega inicialmente a la segunda línea, apuntando hacia el este.Primero, el
'!'
comando verifica el elemento superior. Si es así0
( es decir, hemos llegado al final de la entrada),'v'
se ejecuta la siguiente instrucción ( ), reflejando la IP fuera del bucle. Si aún no hemos llegado al final de la entrada, sumamos los dos elementos superiores ('+'
el segundo elemento es la suma hasta ese punto, el elemento superior la nueva entrada). Luego, la IP se ajusta a otra cara del cubo, dentro del'u'
carácter, lo que hace que la IP dé un giro en U y ejecute un'I'
comando (lea otro entero de entrada), mientras apunta hacia el norte. La IP vuelve a la cara superior, omite ('$'
) la instrucción de eliminación (';'
) y realiza otro cambio de sentido, de vuelta al punto en el que comenzamos.El fin
Si la IP se refleja fuera del bucle, se ejecutan los siguientes caracteres:
Estas instrucciones eliminan el elemento superior (que es cero) y luego generan el elemento superior (la suma) como un entero. Luego
'@'
se alcanza el comando, por lo que el programa finaliza.fuente
Python 2 y 3, 33 bytes
Toma la entrada como parámetros separados.
Python 2.
Python 3.
fuente
lambda l,*r:l+sum(r)*(1/2-.5)*2
para 31 bytes*(1/2*4-1)
es un byte menor que el suyo.JS (ES6), CGL (lenguaje de golf CGL) ,
3226 bytesJS hace la resta y CGL hace la suma.
JS:
Una función anónima que resta cada elemento en la matriz usando
Array#reduce
.Un comentario.
CGL
Lo que parece un espacio en la primera línea es en realidad un espacio sin interrupciones, un comentario en CGL. La primera línea se ignora.
Los
/
s no hacen nada. El-
decrementa el puntero de pila actual, de modo que está apuntando a la entrada.⨥
agrega la pila actual (entrada), la empuja a la siguiente pila e incrementa la pila actual. Se emite implícitamente.fuente
x=>eval(x.join`-`)
, guardando 5BJavaScript (ES6) / QBasic,
8483 bytesOtra solución con el comentario hack!
JavaScript calcula la suma. Toma una matriz que contiene números como entrada. Salidas como función
return
. Puedes llamar a la función comoalert(f([10,20,30]))
.QBasic calcula la diferencia. Repetidamente pide información. Tan pronto como ingrese un valor, generará la diferencia de todos los números que ingresó hasta el momento de golpear Entery nuevamente solicitará la entrada. Sigue haciendo lo mismo hasta el final de todo.
¿Como funciona?
En QBasic (un lenguaje de familia BASIC estructurada; no requiere números de línea),
'
marca el comienzo de un comentario que va hasta el final de la línea. Mientras que en JavaScript, marca el inicio de una cadena. Entonces, toda la primera línea está marcada como un comentario en QBasic pero en JavaScript, la línea se ejecuta (y esta línea contiene la parte de JavaScript que agrega los números, así como un/*
al final que comienza un comentario para ocultar el resto) del código QBasic del intérprete de JavaScript).El código de la segunda línea a la penúltima línea contiene el código QBasic para calcular la diferencia de todos los números de entrada (el código se explica por sí mismo).
La última línea contiene
'*/
.'
hace que el intérprete de QBasic interprete el siguiente código como un comentario, mientras que en JavaScript no tiene ningún efecto ya que es parte de un comentario (que se inició al final de la primera línea). El siguiente código (*/
) hace que JavaScript finalice el comentario que se inició en la primera línea, pero no se ejecuta en QBasic porque QBasic cree que es parte de un comentario.Casos de prueba
JavaScript (agrega):
QBasic (restas):
Ve a este sitio web . Copie y pegue el siguiente código en su editor de texto:
La razón por la cual se requieren números de línea es que el sitio web que mencioné solo admite idiomas BASIC no estructurados. Y ese sitio web es el único intérprete BASIC en línea decente que pude encontrar. Sin embargo, ejecutar el código presente en la parte superior de la publicación (el código sin números de línea) debería funcionar bien en cualquier buen intérprete de QBasic que admita BASIC estructurado y
'
como iniciador de comentarios (sin embargo, pocos no lo hacen).Notas
END
porque el intérprete nunca lo alcanzará! (Siempre estará atascado en el bucle infinito; siempre solicita más información).fuente
Brain-Flak / Brain-Flueue , 20 bytes
Pruébalo en línea! (Brain-Flak) (más)
Pruébalo en línea! (Flujo cerebral) (menos)
Explicación
La única diferencia entre Brain-Flak y Brain-Flueue es que Brain-Flueue reemplaza las dos pilas (la última en entrar, primero en salir) utilizadas en Brain-Flak con dos colas (primero en entrar, primero en salir). Naturalmente, este programa usa esta diferencia.
Código anotado
fuente