El objetivo de este desafío es escribir un programa que satisfaga las siguientes condiciones:
El programa no es palindrómico, o esencialmente palindrómico (lo que significa que es posible eliminar caracteres para convertirlo en un palíndromo sin cambiar los efectos del programa).
El programa no es una involución (lo que significa que no produce su entrada original cuando se ejecuta en su salida)
El programa de polaridad inversa es el inverso del programa normal; entonces, cuando el programa invertido se ejecuta en la salida del programa normal, devuelve la entrada original.
¿Qué significa polaridad inversa ? Bueno, difiere entre idiomas.
- Para la mayoría de los que no son esolangs, esto significa revertir el orden de las suboperaciones en una sola operación, revertir el orden de los argumentos y revertir el contenido de listas / matrices / tuplas / diccionarios / pilas / colas codificadas, etc. como invertir el orden de los bloques de código y las líneas independientes (pero no las líneas dentro de los bloques)
Ejemplos:
Haskell :
x`mod`y
-> y`mod`x
; zipWith ((*3).(+)) [1,2,3] [4,5,6]
->zipWith ((+).(*3)) [6,5,4] [3,2,1]
Python : 2**3
-> 3**2
; for x,y in [(1,2),(3,4),(5,6)]
->for y,x in [(6,5),(4,3),(2,1)]
Para los idiomas que tienen funciones de 1 carácter (como Pyth, APL), simplemente invierta la cadena de instrucciones
Para esolangs unidimensionales como BF, invierta las instrucciones o cambie la polaridad; los intercambios de polaridad son
[]
->{}
,+
->-
,-
->+
,>
-><
,<
->>
,.
->,
y,
->.
(pero no ambos)Para esolangs bidimensionales como Befunge, puede realizar una reflexión a través de los ejes x o y o una diagonal, rotar 180 grados o hacer una combinación de una reflexión y una rotación
Las operaciones conmutativas están permitidas, pero las palindrómicas no lo están: 2*x
está bien, pero x+x
es malo. La definición de una inversión de polaridad es bastante laxa, pero use su juicio sobre lo que tiene sentido; el objetivo no es encontrar la escapatoria más inteligente, sino encontrar la solución más inteligente.
Este es un concurso de popularidad, por lo que una escapatoria muy inteligente puede ser popular, pero trate de mantenerse dentro del espíritu de este desafío. El ganador se anunciará una vez que haya al menos 10 soluciones con al menos 1 voto a favor, y haya al menos una solución con más votos a favor que los que presenten al menos 1 voto a favor; o en 1 mes, lo que ocurra primero. Este es mi primer desafío, así que trate de ser justo y darme comentarios constructivos, pero también avíseme si este es un desafío irrazonable o de alguna manera está mal clasificado o es ambiguo. Si tiene preguntas sobre un idioma que no encaja en ninguno de los casilleros que he establecido aquí, comente y me doblegaré a la voluntad de la comunidad si hay una fuerte protesta por una aclaración particular o cambio de reglas.
ACTUALIZAR
Ha pasado exactamente 1 mes desde que se inició este concurso (por casualidad lo revisé por casualidad, sin saber que realmente estaba a tiempo). Como se trata de un concurso de popularidad, el ganador (por un deslizamiento de tierra) es Pietu1998-Befunge . Aunque los componentes inferiores (el inversor de texto y el alfabeto hacia atrás) son ambas involuciones, el codificador / decodificador no lo son, por lo que no hay ningún problema allí. Puntos de bonificación (en mi opinión) por lograr escribir "BEFUNGE" en el medio. Personalmente, me gustó la novedad de la solución Theseus de Zgarb , porque el lenguaje se ve genial (si está restringido). Gracias a todos por participar, y aunque el ganador ha sido elegido, dejo este concurso completamente abierto, y les doy la bienvenida a futuras presentaciones.
()
palindrómico? Técnicamente, lo contrario es )(
.