Изменения
Квайны
,→Принцип написания
</tr>
</table>
* добавим подставим код каждой из программ интроном второй программы в код другойпервую:<code><font size = "2em"> <tex>P_1(p,arg)</tex>: '''if''' (arg == "print second!")* модифицируем каждую из программ, чтобы вместо '''print'''(<tex>P_2</tex>(p,arg).getSrc()) '''else''' '''print'''(getSrc()) </font></texcode> она выводила интрон* применим теорему о рекурсии и заменим параметр на исходный код программы:
<table>
<tr>
<tex>P_1(arg)</tex>:
'''if''' (arg == "print second!")
'''print'''(p2_intron<tex>P_2</tex>(getSrc(),arg).getSrc())
'''else'''
'''print'''(getSrc())
<tex>P_2(arg)</tex>:
'''if''' (arg == "print first!")
'''print'''(p1_intron<tex>P_1</tex>(getSrc(),arg).getSrc())
'''else'''
'''print'''(getSrc())
'''print'''(getSrc())
</font></code>
* добавим третье условие параметр в два уже существующих квайна:
<table>
<tr>
<tex>P_1(p,arg)</tex>:
'''if''' (arg == "print second!")
'''print'''(p2_intron<tex>P_2</tex>(p,getSrc(),arg).getSrc())
'''elseif''' (arg == "print third!")
'''print'''(p)
'''else'''
'''print'''(getSrc())
</font></code></td>
<td><code><font size = "2em">
<tex>P_2(p,arg)</tex>:
'''if''' (arg == "print first!")
'''print'''(p1_intron<tex>P_1</tex>(p,getSrc(),arg).getSrc())
'''elseif''' (arg == "print third!")
'''print'''(p)
'''else'''
'''print'''(getSrc())
</font></code></td>
</tr>
</table>
* подставим код первых двух интронами в третью, а код третьей - вторым интроном в каждую из двух первых:<table><tr><td><code><font size = "2em"> <tex>P_1(arg)</tex>: '''if''' (arg == "print second!") '''print'''(p2_intron) '''elseif''' (arg == "print third!") '''print'''(p3_intron) '''else''' '''print'''(getSrc())</font></code></td><td><code><font size = "2em"> <tex>P_2P_3(p1,p2,arg)</tex>:
'''if''' (arg == "print first!")
'''print'''(p1_intron<tex>P_1</tex>(p1,arg).getSrc()) '''elseif''' (arg == "print thirdsecond!") '''print'''(p3_intron<tex>P_2</tex>(p2,arg).getSrc())
'''else'''
'''print'''(getSrc())</font></code></td><td>* применим теорему о рекурсии и заменим оба параметра на исходный код программы<code><font size = "2em">
<tex>P_3(arg)</tex>:
'''if''' (arg == "print first!")
'''print'''(p1_intron<tex>P_1</tex>(getSrc(),arg).getSrc())
'''elseif''' (arg == "print second!")
'''print'''(p2_intron<tex>P_2</tex>(getSrc(),arg).getSrc())
'''else'''
'''print'''(getSrc())</font></code></td></tr></table>Две оставшиеся программы будут выглядеть аналогично, и смогут быть получены путём запуска третьей с каждым из возможных аргументов
== Примечания ==