问题标签 [quine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
363 浏览

java - 除了 Wikipedia 页面上列出的那个之外,还有其他 Java quines 吗?

我知道有一个程序代码可以打印自己,Quine code
如下所示

是否有另一个打印自身的 Java 程序代码?

0 投票
1 回答
767 浏览

haskell - Haskell Quine:“ap”Monad

在 Haskell 中使用“ap”monad 的正确方法是什么?我想做类似的事情:

但我收到错误“不在范围内:'ap'。”

使用“import Control.Monad”什么都不做。我试过给它

然后我得到“'ap'的类型签名缺少伴随的绑定”

0 投票
4 回答
1598 浏览

c++ - C++ 在运行时添加新代码

我正在使用 C++(在 xcode 和 code::blocks 中),我不太了解。我想在运行时做一些可编译的东西。

例如:

它应该编译 prog 的内容。我读了一些关于 quines 的文章,但对我没有帮助。

0 投票
1 回答
611 浏览

c - 调用自身的宏打印自身?

下面的程序看起来像一个调用自身的 C 宏。

它编译并运行良好。它自己打印出来。

这段代码真的是 C 吗?也就是说,它是否依赖标准 C 之外的任何东西才能正常工作?

@devnull 指出这个问题有一个类似的程序:

该程序是否依赖标准 C 之外的任何内容才能正常工作?

0 投票
2 回答
802 浏览

perl - perl quine 的解释

我最近发现了这个quine

我就是无法理解它。我在 google/SO 上找不到这个特定的解释,所以我希望有人可以向我解释这件事是如何工作的 :-)

0 投票
5 回答
207 浏览

java - 加号运算符 - 如何强制字符串连接?

在用 Java 编写 Quine(即自我复制程序)时,我尝试使用制表符缩进输出行:

这不起作用,因为“tab + tab + ...”中的加号运算符会添加制表符值而不是生成字符串 (61 = 9 + 9 + 9 + 34):

在开头放置一个空字符串可以完成这项工作:

但是,我不能在 Quine 设置中使用纯引号,因为我需要转义它们以输出程序文本本身。

我想知道是否可以在不明确使用引号或其他 Java 类的情况下强制将加号运算符解释为字符串连接?

0 投票
1 回答
251 浏览

python - 试图制造奎因;不输出引号

使用python 2.7。

(在顶部进行编辑,以防您错过底部的某些内容:我一直在使用 exec() 执行代码,这使其成为源代码的一部分。有关我使用它的更多信息在这篇文章的底部)

最近,我对quines产生了兴趣。到目前为止,我最接近 quine 的尝试是:

不幸的是,这打印了这个

而不是这个

这是一个主要问题,因为执行

会报错,和原源代码不一样。

我一直在努力把那些引号放在那里。我尝试的一种方法是使用转义符来做到这一点:

并打印:

该代码将再次打印

这和错误是不一样的。有人对我可以进行的修改有任何想法吗?

而且,当我写这篇文章时,我意识到了另外一些事情。我一直在用 exec() 执行代码,而这个 quine 只能用 exec() 运行,这使得 exec() 成为代码的一部分,所以也需要添加。因此,现在添加了 exec() 的另一次尝试:

但这会产生一个可怕的循环并且仍然缺少引号

所以,现在我需要让 exec() 没有丑陋的循环,并在正确的位置获得引号。

所以现在,这让我再次重复自己:有没有人对我可以进行的修改有任何想法?

0 投票
3 回答
164 浏览

c - 这个自输出 C 程序是如何工作的?

这是输出自身的最小代码。但无法理解这是如何工作的。有人可以解释吗?

0 投票
1 回答
77 浏览

python - 用于重构类源的python类的str方法

我怎样才能为一个类配备一个__str__打印类本身的源的方法,不包括方法定义

我排除了方法定义,因为我的用例是动态生成固定装置(使用fixtures包;这与 django 固定装置不同),并且我想将这些固定装置存储在文件中。对于那些不知道的人,该fixtures包使用 python 类来表示夹具数据。

这似乎是一种甚至可以内置到固定装置中的东西,因为在我看来,这将是一个比较常见的用例。

0 投票
0 回答
58 浏览

ruby - 您如何正式证明特定的quine是其语言中最短的?

我想出了一个 Ruby quine:

并声称它是最短的,但最初由“Robin Houston”为 Perl 编写,并由“Sabby and Tabby”移植到 Ruby:

结果变短了。我想知道是否有人可以证明较短的非零 quine 实际上在 Ruby 中是不可能的。你会怎么做?零长度脚本在 Ruby 中每个定义都是一个 quine,但这是一个经常被丢弃的微不足道的极端情况。像读取自己的输入一样print IO.read($0)的脚本不是 quines,所以它们不算数。

仅仅因为没有发布更短的内容并不意味着它是最短的。那么如何(像科学一样)证明特定的quine是最短的呢?