gpt4 book ai didi

programming-languages - 有助于编写 quines(自打印程序)的语言功能?

转载 作者:行者123 更新时间:2023-12-04 08:24:26 28 4
gpt4 key购买 nike

好吧,对于那些从未遇到过这个词的人来说, quine 是一个“ self 复制”的计算机程序。更具体地说,它在执行时会生成自己的源代码副本作为其唯一输出。

当然,可以使用多种编程语言(但不是全部)开发 quines;但是有些语言显然比其他语言更适合产生蒯躅(要清楚地理解听起来有点主观的“更适合”,请查看 Haskell example vs. C example in the Wiki page - 我在下面提供了我更客观的定义)。

我的问题是,从编程语言的角度来看,哪些语言特性(无论是理论设计还是语法糖)使该语言更适合/有助于编写 quines

我对“更合适”的定义是“quines 更容易编写”和“更短/更易读/更少混淆”。但欢迎您添加更多至少有点客观的标准。

请注意,这个问题明确排除了退化的情况,比如一种旨在包含“print_a_quine”原语的语言。

最佳答案

我不是很确定,所以如果你们中的任何人知道得更多,请指正我。我同意其他两个答案,进一步解释说,蒟蒻是这样的:

Y g

其中 Y 是 Y fixed-point combinator (或任何其他定点组合器),这意味着在 lambda calculus :

Y g = g(Y g)

现在,很明显,我们需要代码是数据,g 是一个函数,它将打印它的参数。

总而言之,我们需要构造这样一个 quines 函数、打印函数、定点组合器和按名称调用评估策略。

满足此条件的最小语言是来自 Iota and Jot 的 AFAIK Zot家庭。

关于programming-languages - 有助于编写 quines(自打印程序)的语言功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077541/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com