- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是一个特殊的 Haskell 程序,输出一个 Python 程序,输出一个 Ruby 程序,Ruby 程序输出原始的 Haskell 程序(来自 http://blog.sigfpe.com/2008/02/third-order-quine-in-three-languages.html)
更准确地说,输出是这个 Haskell 程序
q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']
main=q "q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']" "def q(a,b,c):print b+chr(10)+'q('+repr(b)+','+repr(c)+','+repr(a)+')'" "def e(x) return 34.chr+x+34.chr end;def q(a,b,c) print b+10.chr+'main=q '+e(b)+' '+e(c)+' '+e(a)+' '+10.chr end"
是一个Python程序,
$ runhaskell test.hs
def q(a,b,c):print b+chr(10)+'q('+repr(b)+','+repr(c)+','+repr(a)+')'
q("def q(a,b,c):print b+chr(10)+'q('+repr(b)+','+repr(c)+','+repr(a)+')'","def e(x) return 34.chr+x+34.chr end;def q(a,b,c) print b+10.chr+'main=q '+e(b)+' '+e(c)+' '+e(a)+' '+10.chr end","q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']")
运行后输出一个Ruby程序,
$ runhaskell test.hs | python
def e(x) return 34.chr+x+34.chr end;def q(a,b,c) print b+10.chr+'main=q '+e(b)+' '+e(c)+' '+e(a)+' '+10.chr end
q("def e(x) return 34.chr+x+34.chr end;def q(a,b,c) print b+10.chr+'main=q '+e(b)+' '+e(c)+' '+e(a)+' '+10.chr end","q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']","def q(a,b,c):print b+chr(10)+'q('+repr(b)+','+repr(c)+','+repr(a)+')'")
最后,Ruby 程序打印出原始的 Haskell 程序。
$ runhaskell test.hs | python | ruby
q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']
main=q "q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [','] ++ show c ++ [','] ++ show a ++ [')']" "def q(a,b,c):print b+chr(10)+'q('+repr(b)+','+repr(c)+','+repr(a)+')'" "def e(x) return 34.chr+x+34.chr end;def q(a,b,c) print b+10.chr+'main=q '+e(b)+' '+e(c)+' '+e(a)+' '+10.chr end"
由于传统的 quine 程序可以通过将程序分为两部分来构建,其中部分 A 包含对部分 B 的描述,部分 B 根据描述计算 A。
但是这样的三阶quine是怎么构造出来的呢?
最佳答案
首先,围绕this programming assignment 转一圈.相信我,一旦你花一些时间,它实际上并不难。这个想法是,您可以编写一个程序,该程序可以将另一个程序作为输入,并吐出第三个程序作为输出,该程序结合了两个程序并理解其自身的文本。这是一种高阶奎因。如果您了解所有三种编程语言的结构,则可以从这项作业中汲取灵感并进一步扩展它们。
关于algorithm - 关于构建高阶 Quine 程序有什么想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1347578/
我读过 Ken Thompson 的经典论文 Reflections on Trusting Trust他在其中提示用户写一个 Quine作为他的论点的介绍(强烈推荐阅读)。 A quine is a
我只知道一个证明者可以翻译 Quine 在他的《逻辑方法》一书中为经典命题逻辑提供的算法(哈佛大学出版社,1982 年,第 1 章第 5 章,第 33-40 页),这个证明者在 Haskell 中,它
转载请务必注明出处: https://www.cnblogs.com/the-wind/p/15764283.html 目录 1 背景介绍:两级逻辑
我正在创建一个 Quine在 C 中,我需要在其中创建一个新的 c 文件,然后编译并执行它。 我做了一个简单的片段来理解为什么它不起作用。 我的猜测是 execv 在 fprintf 完成写入之前启动
最短的 bash quine 是空字符串: $ bash -c '' $ 生成自己的源代码作为输出的最短的非空 bash 脚本是什么? 最佳答案 19 个字符: $echo 'echo $BASH_C
最短的 bash quine 是空字符串: $ bash -c '' $ 生成自己的源代码作为输出的最短的非空 bash 脚本是什么? 最佳答案 19 个字符: $echo 'echo $BASH_C
我最近发现了这个 quine $a='$a=%c%s%c;printf($a,39,$a,39,10);%c';printf($a,39,$a,39,10); 我就是想不通。我在 google/SO
来源:Rosettacode Quine for HTML/CSS (找到 HTML/CSS 部分)。 以下代码在保存为 html 文件时,在浏览器中呈现为源代码。 HTML/CSS Q
这是一个特殊的 Haskell 程序,输出一个 Python 程序,输出一个 Ruby 程序,Ruby 程序输出原始的 Haskell 程序(来自 http://blog.sigfpe.com/200
根据标题,是否可以创建一个(非平凡的)quine在 HTML 中? 我对 HTML quine 的定义: A non-trivial HTML quine is one that is not nul
Another SO question提到了 Yusuke Endoh 的神奇 quine。 quine 是一种计算机程序,它会生成自己的源代码副本作为其唯一输出;这个做了一个转折。 A must-s
我已经创建了一个图灵完备的编程语言(已经被证明),所以一定可以写一个 quine对吧? 但是我知道的所有 quines 都将它们的源代码存储在一个字符串中,然后使用类似 chr 的内容替换其中的特殊字
This是一篇非常有趣的 wiki 文章,内容涉及无需访问物理源文件(在文件系统中)即可打印自己的源代码的程序。文章中的示例包括 C 和 Scheme quine 程序(是的,它们似乎是这样调用的)。
Quine-McCluskey 算法中的零最小项怎么办?例如西格玛 (0,1,3) 是输入那么我们是否必须在寻找主要蕴含项时忽略第一个零最小项,或者我们不关心零。?即它不包含在输出中? 最佳答案 最小
我正在查看 article on wikipdia对于这个算法,我看到了两个看似矛盾的说法: "it also gives a deterministic way to check that the
我想合并 Quine–McCluskey Algorithm与 Composite Specification Pattern . 首先,让我们考虑一下基础知识,即 C# 中的规范模式: public
今天,我在维基百科上浏览了一些随机的极客文章,以获取我每天的无用知识。我偶然发现了 quines,它们是打印自己的源代码的程序。我发现这是一种让我的大脑受伤的好方法,所以我开始在 VBA 中研究一个奎
好吧,对于那些从未遇到过这个词的人来说, quine 是一个“ self 复制”的计算机程序。更具体地说,它在执行时会生成自己的源代码副本作为其唯一输出。 当然,可以使用多种编程语言(但不是全部)开发
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 编写一个程序,输出 反向 其源代码作为字符串。如果来源是 abcd efg (即 C 字符串 "
我经历了各种各样的 quine 问题,但我的任务是在没有 main() 的情况下得到一个 quine 问题,并且循环也是被禁止的。 没有循环,这很容易,但是我想不出没有 main() 怎么写。谁能帮助
我是一名优秀的程序员,十分优秀!