Le but de ce challenge est d'écrire un programme qui remplit les conditions suivantes:
Le programme n'est ni palindromique, ni essentiellement palindromique (ce qui signifie qu'il est possible de supprimer des caractères pour en faire un palindrome sans modifier les effets du programme).
Le programme n'est pas une involution (ce qui signifie qu'il ne produit pas son entrée d'origine lorsqu'il est exécuté sur sa sortie)
Le programme à polarité inversée est l'inverse du programme normal; ainsi, lorsque le programme inversé est exécuté sur la sortie du programme normal, il renvoie l'entrée d'origine.
Que signifie polarité inversée ? Eh bien, cela diffère entre les langues.
- Pour la plupart des non-esolangs, cela signifie également inverser l'ordre des sous-opérations en une seule opération, inverser l'ordre des arguments et inverser le contenu des listes / tableaux / tuples / dictionnaires / piles / files d'attente / etc codés en dur, ainsi comme inversant l'ordre des blocs de code et des lignes autonomes (mais pas les lignes à l'intérieur des blocs)
Exemples:
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)]
Pour les langues qui ont des fonctions à 1 caractère (comme Pyth, APL), inversez simplement la chaîne d'instructions
Pour les esolangs à une dimension comme BF, inversez les instructions ou échangez la polarité; les échanges de polarité sont
[]
->{}
,+
->-
,-
->+
,>
-><
,<
->>
,.
->,
et,
->.
(mais pas les deux)Pour les esolangs bidimensionnels comme Befunge, vous pouvez soit effectuer une réflexion sur les axes x ou y ou une diagonale, faire une rotation de 180 degrés, soit combiner une réflexion et une rotation
Les opérations commutatives sont autorisées, mais celles palindromiques ne le sont pas: 2*x
c'est bien, mais x+x
c'est mauvais. La définition d'une inversion de polarité est assez vague, mais utilisez votre jugement sur ce qui a du sens; le but n'est pas de trouver la faille la plus intelligente, mais de trouver la solution la plus intelligente.
Il s'agit d'un concours de popularité, donc une échappatoire très intelligente peut être populaire, mais essayez de rester dans l'esprit de ce défi. Le gagnant sera annoncé une fois qu'il y aura au moins 10 solutions avec au moins 1 vote positif, et qu'il y aura au moins une solution avec plus de votes positifs qu'il n'y a de soumissions avec au moins 1 vote positif; ou en 1 mois, selon la première éventualité. C'est mon premier défi, alors essayez d'être juste et donnez-moi des commentaires constructifs, mais faites-moi également savoir s'il s'agit d'un défi déraisonnable ou s'il est en quelque sorte mal catégorisé ou ambigu. Si vous avez des questions sur une langue qui ne correspond à aucun des pigeonniers que j'ai exposés ici, commentez et je me plierai à la volonté de la communauté s'il y a un tollé fort pour une clarification particulière ou un changement de règle.
MISE À JOUR
Cela fait exactement 1 mois depuis le début de ce concours (il m'est arrivé de le vérifier par hasard, ne sachant pas que j'étais en fait à l'heure). Comme il s'agit d'un concours de popularité, le gagnant (par un glissement de terrain) est Pietu1998-Befunge . Même si les composants du bas (l'inverseur de texte et l'alphabet inversé) sont tous deux des involutions, l'encodeur / décodeur ne le sont pas, donc il n'y a pas de problème là-bas. Points bonus (dans mon esprit) pour avoir réussi à écrire "BEFUNGE" au milieu. J'ai personnellement aimé la nouveauté de la solution Theseus de Zgarb , car la langue a l'air cool (si elle est restreinte). Merci à tous pour votre participation, et bien que le gagnant ait été choisi, je laisse ce concours complètement ouvert et je souhaite la bienvenue aux candidatures futures.
()
palindromique? Techniquement, c'est l'inverse )(
.