Evaluate left or right

2021-02-05 22:13

最初由@xnor沙盒left or right是@xnor编写的一种非常简单的语言。它的表达式由箭头gt;(右)和圆括号组成。目标是将表达式求值为gt;。表达式Agt;B选择右侧项B

解答动态

  • Retina 0.8.2,22字节 {`\(.lt;)?\)$21在线试用!
    基本上是Retina中JavaScript答案的端口。在过去的10分钟里我刚刚学会了如何写循环,得到了这个。
    {`循环替换,直到什么都没有改变。替换项每次计算一步。

    • J,30 bytes ')/''quot;@,~'(',rplclt;[lt;'gt;]'将gt;替换为[],在J中是quot;和quot;标识运算符,这意味着它们返回left或right参数。(在左前面加一个左参数。)对结果进行排序。“)/”gt;“…,~Append)/”gt;“结果。现在我们有(~~input with[]而不是gt;~~)/“gt;”。这与:“lt;gt;@计算该字符串相同。从这里开始,J列和[and]的定义完全符合我们的要求。

      • APL(Dyalog Extended),30 23 bytes (?'(??)'['(gt;'??])/'gt;'(gt;'?接受输入?并获得'(gt;'的索引如果找不到,则用最后的索引+1填充,将1个字符“(??)”[stuff]索引保存到“(??)”,并用??替换lt;lt;lt;lt;'用作左参数,'>;'用作右参数1请联机试用!

        • JavaScript(ES6),69字节 f=s=lt;(s=s.replace(/\(?([gt;s[s[1]lt;'?2:0]))?f(s):在线试用!

          • x86-16机器代码,31 26字节 由于@Bubbler节省了5个字节。
            0000:0000 31 C0 AC 83 F8 29 74 03-50 EB 0C 5A 5B 83 FB 3E 1….)t.P….Z[..gt;gt;)或(gt;gt;)等参数中的整个输入。
            返回堆栈顶部的输出。
            Di组件:
            31C0 XORAX,AX;将累加器回路归零:;Main回路:交流LODSB;AX=[SI++]83F829 CMP AX,')';AX==')'?7403 JZ BRACE;*如果是,跳转到“BRACE”PUSHSTH:;否则…50 PUSH AX;*将AX推到stackEB11 JMP END;*跳转到“END”BRACE:;如果AX==')'?5A POP DX;*POP TOS to DX;*(因此DX现在是最右边的角括号)5B POP BX;*POP TOS to BX;*(因此BX现在是中间的角括号)83FB3E CMP BX,“gt;”(结果存储在PSW中)5B弹出BX;*BX=左参数7403 JZ RAB;*If prev。BX的值=='lt;':89DA MOV DX,BX;*DX=left参数,而不是RAB:;现在,DX是所选的值。5B POP BX;*Discard TOS(这是多余的'(')52 PUSH DX;*PUSH DX on stack END:;最后,E2E4 LOOP;*循环上述CX timesC3 RET;Return to caller

            • Jelly,17 bytes “)lt;?lt; 联机试用!
              与rak1507的APL答案相同的基本方法。要求输入完全带圆括号的.
              “”y Replace(),最后三个链接为二元,lt;带返回左参数和忽略右参数,gt;带返回右参数和忽略左参数,(和一个基本上被忽略的空间。;“/附加reduce quick,v,并将结果求值为带参数的单子?lt;gt;

              • Stax,23 bytes ü▼2δ`?H╞q`o╪≈♀???X→ú 运行和调试it
                使用与tsh的Javascript解决方案相同的regex,并替换直到达到一个固定点。
                Explanation gt;)?(.)($2RgiH g生成器:我应用以下直到不变:gt;)?(.)(quot;$2 regex替换为第二个捕获组H取最后生成的值

                • Python 3,98 74 bytes 由于ovs节省了惊人的24字节!!!
                  import ref=λp:p[1:]和f(回复sub('\(((.)gt;(.))\',r'\2\3',p))或p 联机试用!
                  获取一个带括号的输入字符串,并返回它是左(gt;)。

                  • 05AB1E,20字节 Δ?gt;3?

                    • End

                    免责声明:

                    本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。