这个挑战非常简单。输入一个正则表达式作为输入。
然后,输出您的源代码是否与正则表达式匹配的真假信息。就这么简单!还有两件事:
- 没有内置的奎因;但是,您可以通过文件IO等访问代码的源代码。
- 这是代码高尔夫球,因此以字节为单位的最短代码胜出!
例
如果您的源代码是abc
,则输入a\wc
会返回true,而输入a\dc
会返回false。
\d
在BRE中不特殊;它与字符匹配d
。3.选择特定的regex风格会将您的挑战限制在支持它的语言上,并且很少有语言支持BRE。那是故意的吗?
这个挑战非常简单。输入一个正则表达式作为输入。
然后,输出您的源代码是否与正则表达式匹配的真假信息。就这么简单!还有两件事:
如果您的源代码是abc
,则输入a\wc
会返回true,而输入a\dc
会返回false。
\d
在BRE中不特殊;它与字符匹配d
。3.选择特定的regex风格会将您的挑战限制在支持它的语言上,并且很少有语言支持BRE。那是故意的吗?
Answers:
grep "$@"<$0
Zsh条件句仅理解退出代码,因此脚本以0或1退出。
另外,这会打印一个非空字符串(源代码)进行匹配,并输出一个空字符串以进行匹配,这可以与test
/ 组合为真/假值[
。
程序读取自己的文件,但是根据OP的注释,这是允许的。
-v
。还是……
(f=_=>!!`(f=${f})()`.match(prompt()))()
"+Q ³sAJ fU"+Q ³sAJ fU
标准quine框架添加了一些字节以适应此挑战。Truthy =匹配,falsy = null。在线尝试!
// Implicit: U = input string, A = 10, J = -1, Q = quotation mark
"..."+Q // Take this string and concatenate a quotation mark.
³ // Repeat three times.
sAJ // Slice off the first 10 and last 1 chars.
fU // Match U to the result.
open 0;$_=<0>=~$_
17个字节加4个字节-pl0
。像这样运行:
echo open | perl -pl0 quinean
源文件必须仅包含上面的代码(没有shebang,没有尾随换行符)。1
如果正则表达式匹配则输出,如果不匹配则输出空字符串(在Perl中,空字符串为false)。
如果保证输入不以换行符结尾,则可以保存四个字节:
open 0;say<0>=~<>
像这样运行:
echo -n open | perl -M5.010 quinean
say
需要Perl 5.10+,并且必须启用-M5.010
。根据Meta的说法,“ the -M5.010
,当需要时,是免费的”,得分为17字节。
这是标准“作弊”奎因的简单变体:
open 0;print<0>
这将打开名为的文件,$0
并使用读取内容<0>
。
$_=<0>=~$_
从源文件读取一行,对regex的内容进行正则表达式匹配$_
(已由该-p
标志读取),并将结果分配给$_
。最后自动-p
打印$_
。
支持RegEx的JS风格,我希望可以。在这里尝试!。
h$code.value#i
评论:
$code.value# the document's element "code" (the program container)
_h i and output if it has (matches) the input string (i.e. regex)
x.step
不是一个功能。
math
。
⟮‼(ⒸⅩ222+ᶈ0)đï
挑战后使用带有错误修复的版本。
⟮‼(ⒸⅩ222+ᶈ0)đï // implicit: ï=input
⟮ // copy block: copy following code for later use
(ⒸⅩ222+ᶈ0) // take convert 10222 to char, add stuff inside copy block
‼ đï // check if input matches resulting string
// implicit output
注意:复制块不是quine运算符。它们旨在成为变量声明的更多用途。
Ⅹ
为10 来保存一个字节