这项挑战的目的是编写一个满足以下条件的程序:
该程序不是回文的,或者实质上不是回文的(意味着可以删除字符以使其成为回文,而无需更改程序的效果)。
该程序不是对合(意味着在其输出上运行时不会产生其原始输入)
所述逆极性程序是正常的程序的逆; 因此,当反向程序在普通程序的输出上运行时,它将返回原始输入。
什么是反向极性是什么意思?嗯,这在语言之间是不同的。
- 对于大多数非esolang语言,这意味着在单个操作中反转子操作的顺序,反转参数的顺序,以及反转硬编码列表/数组/元组/字典/堆栈/队列/等的内容颠倒代码块和独立行的顺序(但不改变块内的行)
例子:
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)]
对于具有1个字符的功能的语言(例如Pyth,APL),只需反转指令字符串
对于BF等一维esolang,请颠倒说明或交换极性。极性交换是
[]
->{}
,+
->-
,-
->+
,>
-><
,<
->>
,.
->,
和,
->.
(但不能同时使用)对于像Befunge这样的二维esolang,您可以在x轴或y轴或对角线上执行反射,旋转180度,或者将反射和旋转结合起来
允许交换运算,但回文运算则不允许:2*x
很好,但是x+x
很糟糕。极性反转的定义很松散,但要根据判断来判断。目的不是找到最聪明的漏洞,而是找到最聪明的解决方案。
这是一次人气竞赛,因此非常聪明的漏洞可能很流行,但请尽量避免这种挑战。一旦至少有10个解决方案的至少1个投票,并且至少有1个解决方案的投票数大于至少1个投票的提交数,则将宣布获胜者;或在1个月内(以先到者为准)。这是我面临的第一个挑战,因此请尽量公平并给我建设性的反馈,但也要让我知道这是一个不合理的挑战,还是以某种方式被错误归类或模棱两可。如果您对某种语言所提出的疑问不适合我在此处提出的任何建议,请发表评论,如果强烈要求特定的澄清或规则更改,我会屈服于社区的意愿。
更新
距比赛开始已经整整1个月了(我只是偶然地检查了一下,不知道自己确实准时参加了比赛)。由于这是一场人气竞赛,因此优胜者(以压倒性优势)是 Pietu1998-Befunge。即使最下面的部分(文本反向器和反向字母)都是对合,编码器/解码器也不是,因此在那里没有问题。(在我心中)奖励点,用于设法在中间写下“ BEFUNGE”。我个人喜欢Zgarb的Theseus解决方案的新颖性,因为该语言看起来很酷(如果受限制的话)。感谢大家的参与,当选出优胜者时,我将完全开放这场比赛,并欢迎以后提交。
()
回文?从技术上讲,反之为)(
。