问题标签 [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.
c - 我编写了一个 C 程序,它在编译时嵌入了自己的源代码,并在运行时显示它。这算不算奎因?
维基百科说 quine 没有收到任何输入,我知道,出于这个原因,从文件中读取自己的源代码的程序不算数。上面的程序只是简单地读取自己的源代码并将其打印到标准输出,但它是程序本身的一部分。传统的 quines 通常也将字符串嵌入在同一位置,如果涉及特别积极的优化器,甚至可能是整个源代码/输出。
该程序确实从文件中加载其源代码以显示它......但它在编译时这样做,所以程序仍然不接受输入。那么它是不是一个quine?
javascript - 有没有办法让对象的值动态地知道它自己的键?
这是一个纯粹的理论问题(尽管我认为这是一个有趣的思考练习)。我只是在处理一个 JavaScript 对象(与文档相关),一个有点不寻常的想法掠过我的脑海:有没有办法在所述对象中创建一个键/值对条目,能够读取它自己的键作为其值的一部分?也就是说:
假设我有一个用于序列化数据的 JavaScript 对象:
...有没有办法"M-me? MY key is 'someKey'! Thanks so much for taking an interest!"
在解决密钥时获得(尽管:相当愚蠢的)输出?我完全不在乎结构是什么样子,也不在乎 KVP 部分的值的类型是什么,也不在乎需要传递什么参数(如果有的话?我只是假设它必须是毕竟是一个函数)。
我的意思是,当然有可能;这是代码。一切皆有可能(我见过一个可以确定自己的 SHA-512 hash的 quine ,看在上帝的份上)。但我发现这是一个有趣的思想实验,并想看看是否有人已经有一些 Code Kung Fu/Source Santeria(即使是在抽象/伪代码级别)和/或可能有一些想法的人。
我已经尝试过实际逐行解析 JavaScript 源文件并测试输出字符串的其余部分以放置它(有效,但很蹩脚......如果它是一个构造对象怎么办?),然后想到将其串化并对其进行正则表达式(有效,但仍然很弱......过于依赖对必须是不变结构的预先了解)。
我现在正在尝试过滤对象并自行尝试隔离发出请求的密钥,我希望这会起作用(-ish),但仍然让我感觉有点像瓷器店里的公牛。我可以扩展对象原型(我知道,我知道。理论上,还记得吗?)所以自引用不会造成问题,但我很难为 KVP 提供一种方法来唯一地标识自己而不必搜索字符串的某些设置部分。
有人有什么想法吗?没有任何限制:这可能永远不会看到生产环境的光芒——只是一个有趣的谜题——所以随意弄乱原型、包含库、不缩进……随便什么*
。坦率地说,它甚至不必在 JavaScript 中。这就是我正在使用的。现在是凌晨 2 点 30 分,我只是想看看它是否可行。
*
(请不要不缩进。Twitch -twitch(ಥ∻.⊙)这部分我似乎撒了谎。)
flutter - 在 Dart 中将函数打印为字符串
关于将函数打印为字符串的飞镖问题 -
我在 Dart 上有这个代码-
如果我跑 -
我得到 -
如果我在 JavaScript 上运行它 -
印刷品是——
我如何做与我在 JavaScript 中但在 Dart 中显示的相同的打印?
谢谢朋友!
prolog - 搜索不使用子句/2 或写入/1 的 Prolog Quine?
最简单的 Prolog Quine可以复制自己的子句,如下所示:
是否有另一个 Prolog Quine 不使用子句/2、
写入/1、...,即动态数据库或输入/输出?
我们可以编写一个搜索这样一个 Quine 的 Prolog 程序吗?
python - 使用字符串模板在 python 中制作 quine?
我基本上是在尝试在 python 中创建一个 quine,并首先尝试使用 f-strings,但我很快意识到我首先必须定义我想要在字符串中格式化的变量。然后我了解了字符串模板,并认为这将是可行的方法。然而,我对它的经验并不丰富,可能需要一些帮助。有什么建议么?
这是实际的代码:
它给了我一些正确的结果。唯一的问题是它没有用$s
实际的字符串替换。我可能只是误解了 quines 的整个概念以及使用它们的方法,但我觉得这应该可行。
输出:
python - 如何在不超过最大递归深度的情况下在单独的进程中执行 AST 或代码对象
我正在尝试写一个变质的quine。如果没有“spawn”上下文,子进程似乎继承了堆栈,因此我最终超过了最大递归深度。使用“生成上下文”,子进程似乎不会递归。我将如何执行修改后的 AST?