端口DOS2UNIX的到brainfuck
-
20-09-2019 - |
题
我进入一个参数超过上SuperUser.com 也没用答案,发现自己挑战其他海报回答brainfuck问题。他没有带我上去就可以了,但现在我很好奇。
所有程序需要做的是转换CRLF行结束到LF(DOS样式到UNIX)。周围的任何BF编码器可以帮帮忙?
解决方案
在这里你去:
,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.
假设条件是EOF是由为0的输入值指示(这是对牛肉的默认值,即我用于测试,并且是合理的选择;我认为它也可能支持EOF离开字符不变,但是我没有” t检验这一点)。还假定该文件带有LF(实际上,它取代LF的最后一个字符)结束。处理CR正确如果不是CRLF对部分(也就是,它输出孤CRS)。
也许了一个小时来编写和测试,这包括从一开始学习Brainfuck。
其他提示
这是一个相当短一点,只是41个字符。
,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]
它读取一个值转换成[0]。它复制的读取值变成[1]和[2]和减去从13 [1]。如果一个[1]是非零(意味着它不是一个CR),它把一个[2],并清除一个[1]。然后它清除一个[2],并读取到[0]和再次重复。
这具有附加的优点 - 由于一个[0] = 0它读取每一次叶 - 它应该支持读EOF为0或治疗EOF为“无变化” BF虚拟机,这两者都是常见的。
由于这不替换LF CRLF对而只是条CR,这不依赖于假定文件与LF结束。我自己的DOS2UNIX的测试(至少在Cygwin之一)并不表示孤的CR被保留。
略短,更简单的CR-汽提塔:
,[-------------[+++++++++++++.[-]],]
不隶属于 StackOverflow