更改
跳到导航
跳到搜索
第197行:
第197行:
− +
第213行:
第213行:
− +
第240行:
第240行:
− +
→建构性的自指
</code>
</code>
源代码1:自打印程序源代码
<div style="text-align: center;">源代码1:自打印程序源代码</div>
这里面的“\n”表示换行符,即如果执行<code>Print(‘A\nB’)</code>,则程序会输出下面的字符串:
这里面的“\n”表示换行符,即如果执行<code>Print(‘A\nB’)</code>,则程序会输出下面的字符串:
[[File:jake20111317131552.jpg |center |400px]]
[[File:jake20111317131552.jpg |center |400px]]
图5-2自打印程序源代码中的引号层次示意
<div style="text-align: center;">图5-2自打印程序源代码中的引号层次示意</div>
如上图,这个自打印程序中的引号全部用方框来替代。这样第一层引号’…’就对应了第一层的方框,引号中的引号,即“\’…\’”就对应了框中的一个框。这样,由于程序中出现最多的层次是四层引号,即“\\\’”,所以上图中就出现了第四层框。
如上图,这个自打印程序中的引号全部用方框来替代。这样第一层引号’…’就对应了第一层的方框,引号中的引号,即“\’…\’”就对应了框中的一个框。这样,由于程序中出现最多的层次是四层引号,即“\\\’”,所以上图中就出现了第四层框。
</code>
</code>
源代码2:自打印程序的源码缩写
<div style="text-align: center;">源代码2:自打印程序的源码缩写</div>
我们可以进一步地把它简写为:<math>Q(q)</math>,其中<math>Q</math>表示(<math>(Copy_o \ Popup_o \ Control)</math>)这三个程序的联合程序,而<math>q</math>则表示联合程序的源代码。<math>Q(x)</math>这个程序的作用是输出一个特殊的字符串“<math>X(x)</math>”即程序<math>X</math>调用自己的代码x的源程序,我们称这个<math>Q</math>为'''蒯恩函数'''。
我们可以进一步地把它简写为:<math>Q(q)</math>,其中<math>Q</math>表示(<math>(Copy_o \ Popup_o \ Control)</math>)这三个程序的联合程序,而<math>q</math>则表示联合程序的源代码。<math>Q(x)</math>这个程序的作用是输出一个特殊的字符串“<math>X(x)</math>”即程序<math>X</math>调用自己的代码x的源程序,我们称这个<math>Q</math>为'''蒯恩函数'''。