<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:migmit</id>
  <title>Miguel</title>
  <subtitle>migmit</subtitle>
  <author>
    <email>09b5bdb63dba@4lj.mivlad.net</email>
    <name>migmit</name>
  </author>
  <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom"/>
  <updated>2009-10-14T19:20:33Z</updated>
  <lj:journal userid="6423202" username="migmit" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://migmit.livejournal.com/data/atom" title="Miguel"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:31497</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/31497.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=31497"/>
    <title>On Vox: Мысли в кучу</title>
    <published>2009-10-13T21:14:17Z</published>
    <updated>2009-10-14T19:20:33Z</updated>
    <content type="html">&lt;p&gt;&amp;#x421;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x44E; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x439; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43B; FlashForward. &amp;#x421;&amp;#x44E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x443;, &amp;#x436;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x435; &amp;#x443;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43D;&amp;#x435;&amp;#x43E;&amp;#x431;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x43C;&amp;#x43E;&amp;#x435;, &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;, &lt;a href="http://geroneja.diary.ru"&gt;&amp;#x432;&amp;#x43E;&amp;#x442; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C;&lt;/a&gt;. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x435;&amp;#x440;&amp;#x443; &amp;#x432; &amp;#x43A;&amp;#x443;&amp;#x447;&amp;#x443; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x432;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x44B; &amp;#x438; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x438;, &amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x438;&amp;#x43C; - &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x437; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x434;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x438; &amp;#x43D;&amp;#x430; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x434;&amp;#x430;&amp;#x43D; &amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x442;.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&amp;#x422;&amp;#x43E;, &amp;#x432; &amp;#x447;&amp;#x451;&amp;#x43C; &amp;#x44F; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x44E;&amp;#x441;&amp;#x44C;.&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;ol&gt;&lt;li&gt;&amp;#x41D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x445; &amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x43F;&amp;#x43B;&amp;#x430;&amp;#x43D;&amp;#x435;&amp;#x442;&amp;#x44F;&amp;#x43D;, &amp;#x430;&amp;#x43D;&amp;#x433;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x432;, &amp;#x447;&amp;#x435;&amp;#x440;&amp;#x442;&amp;#x435;&amp;#x439;, &amp;#x432;&amp;#x430;&amp;#x43C;&amp;#x43F;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432; (&amp;#x443;&amp;#x432;&amp;#x44B;), &amp;#x433;&amp;#x43E;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x430; &amp;#x431;&amp;#x43E;&amp;#x433;&amp;#x430; &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x421;&amp;#x432;&amp;#x44F;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x41D;&amp;#x438;&amp;#x43A;&amp;#x430;. &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x43C; - &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43E;&amp;#x442; &amp;#x447;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; - &amp;#x43F;&amp;#x43E;&amp;#x44F;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x432; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x439; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x438;, &amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x448;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x438;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x440;&amp;#x43E;&amp;#x44F;&amp;#x43B;&amp;#x44C; &amp;#x432; &amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x445;. &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x432; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x439; - &amp;#x442;&amp;#x43E;&amp;#x442; &amp;#x444;&amp;#x430;&amp;#x43A;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x438; &amp;#x433;&amp;#x430;&amp;#x434;&amp;#x44B; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44B; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x441;&amp;#x448;&amp;#x435;&amp;#x434;&amp;#x448;&amp;#x435;&amp;#x43C;, &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x435;&amp;#x442;, &amp;#x43A; &amp;#x441;&amp;#x43E;&amp;#x436;&amp;#x430;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44E;, &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x432;&amp;#x438;&amp;#x434;&amp;#x43D;&amp;#x44B;&amp;#x43C;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x41D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x43C;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43A;&amp;#x438; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435;. &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43B;&amp;#x435; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x430; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x430; &amp;#x43C;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43A;&amp;#x430; - &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x431;&amp;#x44B; &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x44F;&amp;#x432;&amp;#x438;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C;, &amp;#x442;&amp;#x440;&amp;#x438; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x438;, &amp;#x43A;&amp;#x430;&amp;#x43A;-&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x41D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43B;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x421;&amp;#x43B;&amp;#x438;&amp;#x448;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x43E; &amp;#x441;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43D;&amp;#x430; &amp;#x441;&amp;#x442;&amp;#x438;&amp;#x445;&amp;#x438;&amp;#x44E;. &amp;#x41E;&amp;#x431;&amp;#x435;&amp;#x441;&amp;#x446;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x451;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;.&lt;/li&gt;&lt;/ol&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;&amp;#x422;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x438;&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;ol&gt;&lt;li&gt;&amp;#x422;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x44F; &amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x44D;&amp;#x445;&amp;#x430;. &amp;#x41F;&amp;#x43E;&amp;#x43A;&amp;#x430; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x441;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x441;&amp;#x43E;&amp;#x43D;&amp;#x430;&amp;#x436;&amp;#x438; &amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x44B; &amp;#x43D;&amp;#x438; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x43B; &amp;#x437;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x441;&amp;#x448;&amp;#x435;&amp;#x434;&amp;#x448;&amp;#x438;&amp;#x43C;, &amp;#x43E;&amp;#x43D; &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B;. &amp;#x41D;&amp;#x430;&amp;#x436;&amp;#x430;&amp;#x43B; &amp;#x43A;&amp;#x43D;&amp;#x43E;&amp;#x43F;&amp;#x43A;&amp;#x443;, &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43C; &amp;#x435;&amp;#x449;&amp;#x451;. &amp;#x41D;&amp;#x43E;, &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x443; &amp;#x43C;&amp;#x44B; &amp;#x438; &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x435;&amp;#x43C; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x43E; &amp;#x441; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x430;&amp;#x43D;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x435;&amp;#x439;, &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x43F;&amp;#x443;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x442;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x437;&amp;#x43E;&amp;#x439;&amp;#x434;&amp;#x451;&amp;#x442; 29 &amp;#x43C;&amp;#x430;&amp;#x440;&amp;#x442;&amp;#x430; (30-&amp;#x433;&amp;#x43E; &amp;#x432; &amp;#x415;&amp;#x432;&amp;#x440;&amp;#x43E;&amp;#x43F;&amp;#x435;), &amp;#x430; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x432;&amp;#x448;&amp;#x435;&amp;#x435; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; - &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x445;&amp;#x43E;, &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x432;&amp;#x448;&amp;#x435;&amp;#x435;&amp;#x441;&amp;#x44F; &amp;#x41D;&amp;#x410;&amp;#x417;&amp;#x410;&amp;#x414; &amp;#x432;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x438;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x422;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x44F; &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430;. &amp;#x422;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x443; &amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x43E;&amp;#x449;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x448;&amp;#x438; &amp;#x424;&amp;#x411;&amp;#x420;-&amp;#x43E;&amp;#x432;&amp;#x446;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x432;&amp;#x435;&amp;#x434;&amp;#x443;&amp;#x442;, &amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x440;&amp;#x435;&amp;#x430;&amp;#x433;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x44E;&amp;#x442; &amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43A;&amp;#x438;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x43A;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x451;&amp;#x440;&amp;#x433;&amp;#x430;&amp;#x435;&amp;#x442;? &amp;#x418; &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x434;&amp;#x430;, &amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x446;&amp;#x435;&amp;#x43B;&amp;#x44C; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; - &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430; &amp;#x438;&amp;#x437; &amp;#x446;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x439; - &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x438;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F; &amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x432;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x433;&amp;#x435;&amp;#x440;&amp;#x43E;&amp;#x438; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x433;&amp;#x434;&amp;#x435;-&amp;#x442;&amp;#x43E;?&lt;/li&gt;&lt;/ol&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;&amp;#x412;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x44B;&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&lt;ol&gt;&lt;li&gt;&amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x443;&amp;#x43F;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x435;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x435; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x432; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;&amp;#x445;? &amp;#x41D;&amp;#x438; &amp;#x432; &amp;#x436;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x439;&amp;#x434;&amp;#x451;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x447;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x43A;, &amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x43E; &amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x44B;&amp;#x439;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x43B;&amp;#x43E; &amp;#x441;&amp;#x443;&amp;#x434;&amp;#x44C;&amp;#x431;&amp;#x435; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x442;. &amp;#x412; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x435; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x43E;&amp;#x432;, &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x43E;. &amp;#x41E;&amp;#x434;&amp;#x438;&amp;#x43D; &amp;#x438;&amp;#x437; &amp;#x424;&amp;#x411;&amp;#x420;-&amp;#x43E;&amp;#x432;&amp;#x446;&amp;#x435;&amp;#x432; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x43B;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x432;&amp;#x440;&amp;#x443;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x43E;&amp;#x43D; &amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x43B; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x438;&amp;#x437;&amp;#x43E;&amp;#x440;&amp;#x443;. &amp;#x427;&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x44B;&amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x438;&amp;#x437;&amp;#x43E;&amp;#x440; &amp;#x432; &amp;#x441;&amp;#x43E;&amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x435;&amp;#x435; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F;, &amp;#x442;&amp;#x435;&amp;#x43C; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x43D;&amp;#x43E; &amp;#x445;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x43E; &amp;#x438;&amp;#x437;&amp;#x432;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x43E;. &amp;#x421; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x44B;, &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435;, &amp;#x43F;&amp;#x43E;-&amp;#x432;&amp;#x438;&amp;#x434;&amp;#x438;&amp;#x43C;&amp;#x43E;&amp;#x43C;&amp;#x443;, &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x44B; &amp;#x43A; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x438; &amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x44C;. &amp;#x412;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;, &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x438;&amp;#x44F; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x433;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x43C; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x438; &amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x446;&amp;#x44B; &amp;#x438; &amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x43B;&amp;#x438;?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x414;&amp;#x438;&amp;#x43C;&amp;#x430; &amp;#x41D;&amp;#x43E;. &amp;#x421; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x44B;, &amp;#x43F;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x436;&amp;#x435;, &amp;#x43E;&amp;#x43D; &amp;#x443;&amp;#x43C;&amp;#x440;&amp;#x451;&amp;#x442;. &amp;#x421; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x44B;, &amp;#x441;&amp;#x43B;&amp;#x438;&amp;#x448;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x443;&amp;#x436; &amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x43A;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x43A; &amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x438; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;. &amp;#x418; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E;, &amp;#x432; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x44E; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x44C;, &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x438; &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430; - &amp;#x441;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x430; &amp;#x414;&amp;#x438;&amp;#x43C;&amp;#x43A;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x441;&amp;#x443;&amp;#x43D;&amp;#x443;&amp;#x43B;&amp;#x438; &amp;#x448;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x444;&amp;#x448;&amp;#x443;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x44F; &amp;#x442;&amp;#x443;&amp;#x442; &amp;#x436;&amp;#x435; &amp;#x438; &amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x43B;&amp;#x430;, &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43B; &amp;#x437;&amp;#x432;&amp;#x43E;&amp;#x43D;&amp;#x43E;&amp;#x43A; &amp;#x444;&amp;#x438;&amp;#x433; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x443;&amp;#x434;&amp;#x430;. &amp;#x415;&amp;#x43C;&amp;#x443; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x431;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x44B;&amp;#x43C; &amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43C; (&amp;#x437;&amp;#x432;&amp;#x43E;&amp;#x43D;&amp;#x43E;&amp;#x43A; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x435;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x440;&amp;#x44F;&amp;#x43C;&amp;#x43E;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x441;&amp;#x442;, &amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x43D;&amp;#x443;&amp;#x448;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x441;&amp;#x43E;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;), &amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x44F;&amp;#x442; &amp;#x43A; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x443;&amp;#x431;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44E;. &amp;#x412;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;, &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442; &amp;#x445;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x414;&amp;#x438;&amp;#x43C;&amp;#x43A;&amp;#x430; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x43B;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x443;&amp;#x43C;&amp;#x440;&amp;#x451;&amp;#x442; - &amp;#x43A;&amp;#x430;&amp;#x43A;, &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C;, &amp;#x432; Drive &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x444;&amp;#x435;&amp;#x441;&amp;#x441;&amp;#x43E;&amp;#x440; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x43B; &amp;#x432; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x44E; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x435;&amp;#x447;&amp;#x451;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C;, &amp;#x438; &amp;#x432; &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x435; &amp;#x434;&amp;#x435;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43B; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x431;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x443;&amp;#x43C;&amp;#x430;&amp;#x43B; &amp;#x434;&amp;#x435;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C;, &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x434;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x44C;&amp;#x435; &amp;#x432; &amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x434;&amp;#x43A;&amp;#x435;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x41D;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x439;. &amp;#x41F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x449;&amp;#x430; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x43E;. &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x43D; &amp;#x43D;&amp;#x435; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43B; &amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; - &amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x432;&amp;#x451;&amp;#x43B; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x44F; &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x43E;&amp;#x439;&amp;#x43D;&amp;#x43E;? &amp;#x41D;&amp;#x435; &amp;#x43F;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43B;, &amp;#x434;&amp;#x430;&amp;#x436;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43F;&amp;#x438;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x430;&amp;#x439;&amp;#x442;&amp;#x438; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x435;-&amp;#x43D;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C; &amp;#x443;&amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x442;&amp;#x438;&amp;#x435; (&amp;#x442;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B; &amp;#x431;&amp;#x44B; &amp;#x44F;). &amp;#x421;&amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x43E;&amp;#x439;&amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x451;&amp;#x43B; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x440;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x43D;&amp;#x435; &amp;#x438; &amp;#x443;&amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x43B;&amp;#x441;&amp;#x44F;. &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x43E;&amp;#x43D; &amp;#x434;&amp;#x443;&amp;#x448;&amp;#x435;&amp;#x432;&amp;#x43D;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x439;? &amp;#x418;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x43E;, &amp;#x430;&amp;#x443;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x44B; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x435;&amp;#x449;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x442;&amp;#x438;&amp;#x432;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x44F;&amp;#x442;&amp;#x438;&amp;#x44F;, &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x438;&amp;#x43C; &amp;#x434;&amp;#x43E; &amp;#x444;&amp;#x435;&amp;#x43D;&amp;#x438;? &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x43D; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43B; - &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43E;&amp;#x43D; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x430; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x434;&amp;#x438;&amp;#x43E;&amp;#x43D;&amp;#x435;? &amp;#x41F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x441;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x434;&amp;#x43E;&amp;#x43C;&amp;#x430;? &amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x43D; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43B; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x430;&amp;#x431;&amp;#x43B;&amp;#x44E;&amp;#x434;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x437;&amp;#x430; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x43F;&amp;#x43E;&amp;#x439; - &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x43C;&amp;#x435;&amp;#x448;&amp;#x430;&amp;#x43B; &amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x432;&amp;#x44B;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x447;&amp;#x43A;&amp;#x43E; &amp;#x43D;&amp;#x430; &amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x448;&amp;#x435; &amp;#x43D;&amp;#x435;&amp;#x431;&amp;#x43E;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x451;&amp;#x431;&amp;#x430; &amp;#x438; &amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x443;&amp;#x44E;-&amp;#x43D;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C; &amp;#x43E;&amp;#x436;&amp;#x438;&amp;#x432;&amp;#x43B;&amp;#x451;&amp;#x43D;&amp;#x43D;&amp;#x443;&amp;#x44E; &amp;#x443;&amp;#x43B;&amp;#x438;&amp;#x446;&amp;#x443;? &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;, &amp;#x43E;&amp;#x43D; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43B; &amp;#x437;&amp;#x430;&amp;#x43F;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x442;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x430; &amp;#x43A;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x443;? &amp;#x421;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x435;&amp;#x439; &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430;, &amp;#x43D;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x432;&amp;#x438;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x430; &amp;#x43D;&amp;#x435; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x43D;&amp;#x43E;. &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x43E;&amp;#x43D; &amp;#x43D;&amp;#x435; &amp;#x417;&amp;#x41D;&amp;#x410;&amp;#x41B; &amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438;, &amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x43E; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x44F;&amp;#x43B;? &amp;#x421;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x432;&amp;#x44B;&amp;#x439; &amp;#x444;&amp;#x438;&amp;#x437;&amp;#x438;&amp;#x43A;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x437;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x43B;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;, &amp;#x432;&amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x411;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x413;&amp;#x443;&amp;#x434;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x423;&amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x439;&amp;#x434;&amp;#x435;&amp;#x440;&amp;#x430;? &amp;#x41A;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x438;, &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x435;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x44D;&amp;#x445;&amp;#x430;. &amp;#x410; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x443; &amp;#x43E;&amp;#x43D; &amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x43B; &amp;#x441;&amp;#x43E; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x438;&amp;#x43C; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x44F;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x43C;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x442;&amp;#x43E;&amp;#x436;&amp;#x435; &amp;#x431;&amp;#x44B;&amp;#x43B; &amp;#x432; &amp;#x43A;&amp;#x443;&amp;#x440;&amp;#x441;&amp;#x435; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x438; - &amp;#x410;&amp;#x43B;&amp;#x451;, &amp;#x412;&amp;#x43E;&amp;#x432;&amp;#x43A;&amp;#x430;? &amp;#x423; &amp;#x442;&amp;#x435;&amp;#x431;&amp;#x44F; &amp;#x442;&amp;#x430;&amp;#x43C; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x436;&amp;#x435; &amp;#x431;&amp;#x430;&amp;#x440;&amp;#x434;&amp;#x430;&amp;#x43A;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x438; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C;? &amp;#x410; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44F; &amp;#x442;&amp;#x435;&amp;#x431;&amp;#x435; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x43B;? &amp;#x412;&amp;#x43E;&amp;#x442;-&amp;#x432;&amp;#x43E;&amp;#x442;, &amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x437;&amp;#x440;&amp;#x44F; &amp;#x43C;&amp;#x44B; &amp;#x442;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x431;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x43A;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x438;, &amp;#x430; &amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x436;&amp;#x435; &amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x44F;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x431;&amp;#x44B; &amp;#x43F;&amp;#x43E; &amp;#x437;&amp;#x435;&amp;#x43C;&amp;#x43B;&amp;#x435;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x414;&amp;#x438; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;. &amp;#x420;&amp;#x430;&amp;#x437;&amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x443; &amp;#x441; &amp;#x41D;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x44B;&amp;#x43C; &amp;#x441;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x433;&amp;#x438;&amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x437;&amp;#x43E;&amp;#x439;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x43D;&amp;#x438; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x430;&amp;#x440;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x43C;&amp;#x438; (&amp;#x442;&amp;#x440;&amp;#x443;&amp;#x434;&amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x431;&amp;#x44B; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x424;&amp;#x411;&amp;#x420; &amp;#x43D;&amp;#x435; &amp;#x443;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43E; &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x437;&amp;#x434;&amp;#x43D;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x441;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x438;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x443;) - &amp;#x438; &amp;#x441; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x435;&amp;#x439; &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430;. &amp;#x421; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x44B;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x43D;&amp;#x43E; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x44B;&amp;#x434;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x43C; &amp;#x43F;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x442;&amp;#x435;, &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x441;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F; &amp;#x438; &amp;#x441; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x435;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x44D;&amp;#x445;&amp;#x430;. &amp;#x427;&amp;#x442;&amp;#x43E; &amp;#x43E; &amp;#x43D;&amp;#x451;&amp;#x43C; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x427;&amp;#x430;&amp;#x440;&amp;#x43B;&amp;#x438; &amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x430; "&amp;#x414;&amp;#x438;"? &amp;#x41D;&amp;#x435; "&amp;#x414;&amp;#x44D;&amp;#x432;&amp;#x438;&amp;#x434; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;", &amp;#x43D;&amp;#x435; "&amp;#x43C;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x440; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;", &amp;#x430; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; "&amp;#x414;&amp;#x438;"? &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x438;&amp;#x43C;&amp;#x44F; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x430; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x433;&amp;#x434;&amp;#x435;-&amp;#x43D;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x43D;&amp;#x43E;? &amp;#x423;&amp;#x43C;&amp;#x435;&amp;#x435;&amp;#x442; &amp;#x43B;&amp;#x438; &amp;#x427;&amp;#x430;&amp;#x440;&amp;#x43B;&amp;#x438; &amp;#x432; &amp;#x435;&amp;#x451; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x44C;? &amp;#x412;&amp;#x435;&amp;#x440;&amp;#x43E;&amp;#x44F;&amp;#x442;&amp;#x43D;&amp;#x43E;, &amp;#x434;&amp;#x430;. &amp;#x41D;&amp;#x435; &amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43B;&amp;#x438; "&amp;#x414;&amp;#x438; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;" &amp;#x43A;&amp;#x438;&amp;#x432;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x432; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x443; &amp;#x414;&amp;#x435;&amp;#x439;&amp;#x432;&amp;#x430; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x430;, &amp;#x441;&amp;#x43E;&amp;#x430;&amp;#x432;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430; "&amp;#x412;&amp;#x43E;&amp;#x442;&amp;#x447;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43E;&amp;#x432;"? &amp;#x41F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x435; &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x43A; &amp;#x437;&amp;#x430;&amp;#x433;&amp;#x430;&amp;#x434;&amp;#x43A;&amp;#x430;&amp;#x43C; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43B;&amp;#x430; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x438;&amp;#x442;&amp;#x441;&amp;#x44F;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x413;&amp;#x435;&amp;#x440;&amp;#x440; &amp;#x413;&amp;#x435;&amp;#x439;&amp;#x435;&amp;#x440;. &amp;#x423;&amp;#x436; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x430;&amp;#x43A;&amp;#x43A;&amp;#x443;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x43E; &amp;#x43E;&amp;#x43D; &amp;#x438;&amp;#x445; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x432;&amp;#x451;&amp;#x43B;. &amp;#x41A;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442;, &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43E;&amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x438;&amp;#x437; &amp;#x446;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x439; &amp;#x448;&amp;#x430;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430; (&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x435;&amp;#x442;)?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x421;&amp;#x430;&amp;#x43C; &amp;#x444;&amp;#x435;&amp;#x43D;&amp;#x43E;&amp;#x43C;&amp;#x435;&amp;#x43D; &amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x440;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x432;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;. &amp;#x41F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x41D;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x43E;&amp;#x431;&amp;#x44A;&amp;#x44F;&amp;#x441;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x447;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43C;&amp;#x438;, &amp;#x430; &amp;#x432;&amp;#x43E;&amp;#x442; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440; &amp;#x441; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x43C; &amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x440;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x43C; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x43D;&amp;#x438; &amp;#x441;&amp;#x43E;&amp;#x445;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x430;&amp;#x439;&amp;#x43D;&amp;#x43E;. &amp;#x41E;&amp;#x43D;&amp;#x438; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E;. &amp;#x421; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x44B;, &amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x447;&amp;#x438;&amp;#x43A; &amp;#x432; &amp;#x441;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x439;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x444;&amp;#x43B;&amp;#x44D;&amp;#x448;&amp;#x431;&amp;#x435;&amp;#x43A;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x43B; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x430;&amp;#x43D; &amp;#x441; &amp;#x43E;&amp;#x440;&amp;#x433;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x437;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x431;&amp;#x435;&amp;#x437;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x438;&amp;#x44F;. &amp;#x423; &amp;#x43D;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x448;&amp;#x440;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x430; &amp;#x43B;&amp;#x438;&amp;#x446;&amp;#x435; - &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A;-&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x430;&amp;#x43D;&amp;#x43E; &amp;#x441; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x440;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x43C;? &amp;#x421;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x433;&amp;#x438;&amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x437;&amp;#x43E;&amp;#x439; &amp;#x43E; &amp;#x43F;&amp;#x441;&amp;#x438;&amp;#x445;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43C; &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x438;. &amp;#x412;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;, &amp;#x41D;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x439; &amp;#x438; &amp;#x414;&amp;#x438; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x438;&amp;#x43C; &amp;#x438; &amp;#x442;&amp;#x435;&amp;#x43C; &amp;#x436;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x43C;? &amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C;, &amp;#x43E;&amp;#x43D;&amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x440;&amp;#x443;&amp;#x436;&amp;#x438;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43D;&amp;#x430; &amp;#x441;&amp;#x435;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x435; &amp;#x433;&amp;#x440;&amp;#x443;&amp;#x43F;&amp;#x43F;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x440;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x438; &amp;#x438; &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438;, &amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x43D; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x435;&amp;#x444;&amp;#x43B;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43B; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x443;? &amp;#x421;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x442;&amp;#x435;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x413;&amp;#x438;&amp;#x431;&amp;#x431;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x430; &amp;#x432;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x43A;&amp;#x438; &amp;#x430;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x430; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E;, &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x43D;&amp;#x435;&amp;#x430;&amp;#x434;&amp;#x435;&amp;#x43A;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x43C;. &amp;#x41E;&amp;#x434;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E; &amp;#x43D;&amp;#x435;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x43E;&amp;#x435; - &amp;#x44F;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x440;&amp;#x435;&amp;#x434;&amp;#x43A;&amp;#x43E;&amp;#x435; - &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x442; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x44F; &amp;#x43B;&amp;#x438;&amp;#x448;&amp;#x44C; &amp;#x43D;&amp;#x435;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x43E;&amp;#x439; &amp;#x448;&amp;#x440;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x430; &amp;#x43B;&amp;#x431;&amp;#x443;, &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x447;&amp;#x451;&amp;#x43C; &amp;#x432; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x435;, &amp;#x433;&amp;#x434;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440; &amp;#x425;&amp;#x430;&amp;#x443;&amp;#x441; &amp;#x43D;&amp;#x435; &amp;#x436;&amp;#x438;&amp;#x432;&amp;#x451;&amp;#x442;?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;#x427;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x430; &amp;#x444;&amp;#x430;&amp;#x43B;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x432;&amp;#x43E;&amp;#x43B; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x43B; &amp;#x432; &amp;#x421;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x438; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x430; &amp;#x431;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x44F; &amp;#x441;&amp;#x443;&amp;#x431;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x446;&amp;#x438;&amp;#x44F; &amp;#x438;&amp;#x437; &amp;#x43D;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x43F;&amp;#x43B;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x443;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C;? &amp;#x414;&amp;#x430;, &amp;#x44F; &amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x44E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441; &amp;#x43F;&amp;#x43E;&amp;#x448;&amp;#x43B;&amp;#x44B;&amp;#x439;.&lt;/li&gt;&lt;li&gt;Те спецназовцы в видении Марка. Они шли за ним? Или за Стэном? Если бы Стэн находился у себя, то он был бы поблизости - Марк его, помнится, даже спрашивал, не видел ли он чего-нибудь. Он в это время сидел в сортире, но киллеры могли этого не знать.&lt;/li&gt;&lt;/ol&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BC%D1%8B%D1%81%D0%BB%D0%B8-%D0%B2-%D0%BA%D1%83%D1%87%D1%83.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:31413</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/31413.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=31413"/>
    <title>On Vox: Хозяйке на заметку</title>
    <published>2009-10-06T21:03:06Z</published>
    <updated>2009-10-06T21:03:06Z</updated>
    <content type="html">&lt;p&gt;&amp;#x422;&amp;#x435;&amp;#x43A;&amp;#x443;&amp;#x449;&amp;#x438;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x43E;&amp;#x439;&amp;#x43A;&amp;#x438; mencoder-&amp;#x430; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x442;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x435;&amp;#x43E; &amp;#x43D;&amp;#x430; &amp;#x430;&amp;#x439;&amp;#x444;&amp;#x43E;&amp;#x43D;:&lt;/p&gt;&lt;p&gt;mencoder &lt;strong&gt;&lt;em&gt;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x438;&amp;#x43A;&lt;/em&gt;&lt;/strong&gt;.avi -o &lt;strong&gt;&lt;em&gt;&amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442;&lt;/em&gt;&lt;/strong&gt;.mp4 -vf dsize=480:320:0,scale=-8:-8,harddup -oac faac -faacopts mpeg=4:object=2:raw:br=128 -of lavf -lavfopts format=mp4 -ovc x264 -x264encopts nocabac:level_idc=30:bframes=0:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh:bitrate=500:no8x8dct &lt;/p&gt;&lt;p&gt;&amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x432;&amp;#x43E;&amp;#x442;.&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D1%85%D0%BE%D0%B7%D1%8F%D0%B9%D0%BA%D0%B5-%D0%BD%D0%B0-%D0%B7%D0%B0%D0%BC%D0%B5%D1%82%D0%BA%D1%83.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:31018</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/31018.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=31018"/>
    <title>On Vox: Code Jam</title>
    <published>2009-09-26T18:36:18Z</published>
    <updated>2009-09-26T18:36:18Z</updated>
    <content type="html">&lt;p&gt;&amp;#x418;&amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x43E;&amp;#x43D;&amp;#x43E; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x447;&amp;#x438;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C;. 759 &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E;, &amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x436;&amp;#x443;. &amp;#x420;&amp;#x435;&amp;#x448;&amp;#x438;&amp;#x43B; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x443;&amp;#x44E; &amp;#x437;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x447;&amp;#x443; &amp;#x438; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x443;&amp;#x44E; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x44C;&amp;#x435;&amp;#x439; - &amp;#x43E;&amp;#x43D;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438; &amp;#x43E;&amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C; &amp;#x43D;&amp;#x430; large set. &amp;#x412;&amp;#x44B;&amp;#x432;&amp;#x43E;&amp;#x434;: &amp;#x441; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x431;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x430;&amp;#x43B;&amp;#x433;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x442;&amp;#x43C;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x443; &amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F;, &amp;#x432;&amp;#x441;&amp;#x451;-&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;, &amp;#x43F;&amp;#x43B;&amp;#x43E;&amp;#x445;&amp;#x43E;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/code-jam.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:30749</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/30749.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=30749"/>
    <title>On Vox: Почувстовал себя персонажем анекдота</title>
    <published>2009-09-01T16:49:45Z</published>
    <updated>2009-09-01T16:49:45Z</updated>
    <content type="html">&lt;p&gt;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x43B; &amp;#x432; &amp;#x442;&amp;#x435;&amp;#x440;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x435; "which watch". &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BF%D0%BE%D1%87%D1%83%D0%B2%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D0%BB-%D1%81%D0%B5%D0%B1%D1%8F-%D0%BF%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%B6%D0%B5%D0%BC-%D0%B0%D0%BD%D0%B5%D0%BA%D0%B4%D0%BE%D1%82%D0%B0.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:30505</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/30505.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=30505"/>
    <title>On Vox: Первый аплоад на Hackage</title>
    <published>2009-08-17T05:26:03Z</published>
    <updated>2009-08-17T05:26:03Z</updated>
    <content type="html">&lt;p&gt;compose-trans-0.0&lt;/p&gt;&lt;p&gt;&amp;#x421;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43D; &amp;#x43F;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x43C; &amp;#x432;&amp;#x43E;&amp;#x442; &lt;a href="http://migmit.vox.com/library/post/%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B-%D0%BA%D0%B0%D0%BA-%D1%82%D0%B8%D0%BF%D1%8B.html"&gt;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E;&lt;/a&gt; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;. &amp;#x41E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x441;&amp;#x438;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x444;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x43E; &amp;#x438; &amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x43E;. &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9-%D0%B0%D0%BF%D0%BB%D0%BE%D0%B0%D0%B4-%D0%BD%D0%B0-hackage.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:30357</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/30357.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=30357"/>
    <title>On Vox: Какой австралопитек</title>
    <published>2009-08-10T09:07:46Z</published>
    <updated>2009-08-10T09:07:46Z</updated>
    <content type="html">&lt;p&gt;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x44E; "&amp;#x420;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x442;&amp;#x440;&amp;#x43E;&amp;#x43B;&amp;#x44C;" &amp;#x432; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x434;&amp;#x435;? &amp;#x41D;&amp;#x435;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x43D; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x433; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x44C; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x44F; &amp;#x431;&amp;#x44B; &amp;#x43D;&amp;#x430; &amp;#x43C;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x441;&amp;#x44C;? &amp;#x41A;&amp;#x430;&amp;#x43A; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x432; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43C;&amp;#x438;&amp;#x43A;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43F;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x43C;&amp;#x43E;&amp;#x437;&amp;#x433; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x448;&amp;#x43B;&amp;#x430; &amp;#x43C;&amp;#x44B;&amp;#x441;&amp;#x43B;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x435;&amp;#x43D; &amp;#x437;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435;&amp;#x435; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x435; &amp;#x447;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442; &amp;#x437;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x43C;, &amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x43A;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x44B;? &amp;#x41D;&amp;#x435; "&amp;#x434;&amp;#x432;&amp;#x430; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x430; &amp;#x432; &amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x44C;", &amp;#x430; "&amp;#x441; 17:30 &amp;#x434;&amp;#x43E; 19:30"? &amp;#x418;&amp;#x43B;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x430; &amp;#x445;&amp;#x443;&amp;#x439;&amp;#x43D;&amp;#x44F; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x430;&amp;#x442;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C; &amp;#x438;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x432; &amp;#x43F;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43D;&amp;#x446;&amp;#x438;&amp;#x430;&amp;#x440;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x443;&amp;#x447;&amp;#x440;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;&amp;#x445;?&lt;/p&gt;&lt;p&gt;&amp;#x41F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43C;&amp;#x443;, &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x43E;, &amp;#x432; &amp;#x43C;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x441;&amp;#x438;, &amp;#x434;&amp;#x430; &amp;#x438; &amp;#x432; &amp;#x43B;&amp;#x44E;&amp;#x431;&amp;#x43E;&amp;#x43C; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x43C; &amp;#x44E;&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x441;&amp;#x435;, &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x435;&amp;#x431;&amp;#x451;&amp;#x442;, &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x44B; &amp;#x44E;&amp;#x437;&amp;#x435;&amp;#x440; &amp;#x443;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x442; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x44F; &amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x43E;, &amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x432;&amp;#x43D;&amp;#x43E;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x43B;&amp;#x435;&amp;#x437;&amp;#x442;&amp;#x44C; &amp;#x432; &amp;#x447;&amp;#x443;&amp;#x436;&amp;#x438;&amp;#x435; &amp;#x434;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x435; - &amp;#x430; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x43A;&amp;#x443;&amp;#x447;&amp;#x435; &amp;#x434;&amp;#x435;&amp;#x440;&amp;#x44C;&amp;#x43C;&amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x434; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x43C; Vista &amp;#x43F;&amp;#x43E; &amp;#x443;&amp;#x43C;&amp;#x43E;&amp;#x43B;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44E; &amp;#x443;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43A;&amp;#x430; &amp;#x441;&amp;#x43E;&amp;#x444;&amp;#x442;&amp;#x430; &amp;#x437;&amp;#x430;&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x430; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x43C; &amp;#x43D;&amp;#x435;-&amp;#x430;&amp;#x434;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43C;? &amp;#x42D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x445;&amp;#x43D;&amp;#x438;&amp;#x439; &amp;#x432;&amp;#x44B;&amp;#x43A;&amp;#x438;&amp;#x434;&amp;#x44B;&amp;#x448; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x439; &amp;#x433;&amp;#x43B;&amp;#x44E;&amp;#x43A; &amp;#x43D;&amp;#x430; &amp;#x433;&amp;#x43B;&amp;#x44E;&amp;#x43A;&amp;#x435;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x443;&amp;#x43F;&amp;#x430;&amp;#x434;&amp;#x451;&amp;#x442; &amp;#x43E;&amp;#x442; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x435;&amp;#x432;&amp;#x448;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x434;&amp;#x44F;&amp;#x442;&amp;#x43B;&amp;#x430;? &amp;#x41A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x445;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x430;? &amp;#x420;&amp;#x430;&amp;#x43D;&amp;#x44C;&amp;#x448;&amp;#x435; &amp;#x44F; &amp;#x434;&amp;#x443;&amp;#x43C;&amp;#x430;&amp;#x43B;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x434; &amp;#x430;&amp;#x434;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x43C; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x438;&amp;#x434;&amp;#x438;&amp;#x43E;&amp;#x442;&amp;#x44B;. &amp;#x41F;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x436;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x434;&amp;#x435; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x430; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43D;&amp;#x435;&amp;#x442;.&lt;/p&gt;&lt;p&gt;&amp;#x41E;&amp;#x449;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x430; - &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x41E;&amp;#x421;, &amp;#x430; &amp;#x434;&amp;#x435;&amp;#x43C;&amp;#x43A;&amp;#x430;. &amp;#x410; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x434;&amp;#x430; Home Basic, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x44F; &amp;#x448;&amp;#x43B;&amp;#x430; &amp;#x432;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x441; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x43C; - &amp;#x434;&amp;#x435;&amp;#x43C;&amp;#x43A;&amp;#x430; &amp;#x43E;&amp;#x442; &amp;#x434;&amp;#x435;&amp;#x43C;&amp;#x43A;&amp;#x438;. &amp;#x41F;&amp;#x43E;&amp;#x432;&amp;#x431;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x432; &amp;#x431;&amp;#x44B;. &amp;#x423;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x44B;. &amp;#x412;&amp;#x441;&amp;#x435;.&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%B0%D0%B2%D1%81%D1%82%D1%80%D0%B0%D0%BB%D0%BE%D0%BF%D0%B8%D1%82%D0%B5%D0%BA.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:30142</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/30142.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=30142"/>
    <title>On Vox: Просто забавно</title>
    <published>2009-06-30T18:27:25Z</published>
    <updated>2009-06-30T18:27:25Z</updated>
    <content type="html">&lt;p&gt;Вчера всем, конечно, было не до того. Но сегодня должны были уже отойти, так что:&lt;br /&gt;
    
    
    

    
    
    
&lt;div at:enclosure="asset" at:xid="6a00e398c5c26f00050110166a9dd1860c" at:format="extra-large" at:align="center" class="enclosure enclosure-center enclosure-extra-large photo-enclosure" style="text-align: center;"&gt;
&lt;div class="enclosure-inner" style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"&gt;
    &lt;div class="enclosure-list"&gt;
        &lt;div class="enclosure-item photo-asset last"&gt;
    
            &lt;div class="enclosure-image"&gt;
        
                &lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f00050110166a9dd1860c.html"&gt;&lt;img src="http://a1.vox.com/6a00e398c5c26f00050110166a9dd1860c-500pi" alt="Picture 1" title="Picture 1" /&gt;&lt;/a&gt;
        
            &lt;/div&gt;
            &lt;div class="enclosure-meta"&gt;
                &lt;div class="enclosure-asset-name"&gt;&lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f00050110166a9dd1860c.html" title="Picture 1"&gt;Picture 1&lt;/a&gt;&lt;/div&gt;
            &lt;/div&gt;
    
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;br /&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE-%D0%B7%D0%B0%D0%B1%D0%B0%D0%B2%D0%BD%D0%BE.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:29942</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/29942.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=29942"/>
    <title>On Vox: Ну и денёк</title>
    <published>2009-06-16T18:05:32Z</published>
    <updated>2009-06-16T18:05:32Z</updated>
    <content type="html">&lt;p&gt;&amp;#x41D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43E;&amp;#x431;&amp;#x44B;&amp;#x447;&amp;#x43D;&amp;#x43E;, &amp;#x441; &amp;#x43C;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x447;&amp;#x438;. &amp;#x414;&amp;#x438;&amp;#x437;&amp;#x430;&amp;#x439;&amp;#x43D;&amp;#x435;&amp;#x440;&amp;#x44B; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x443;&amp;#x44E; &amp;#x43C;&amp;#x43E;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x44C; &amp;#x438;&amp;#x433;&amp;#x440;&amp;#x43E;&amp;#x43A;&amp;#x430;, &amp;#x437;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x432; &amp;#x443;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x448;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x439; &amp;#x441;&amp;#x43E;&amp;#x43B;&amp;#x434;&amp;#x430;&amp;#x444;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44E;&amp;#x43C; &amp;#x43D;&amp;#x430; &amp;#x444;&amp;#x443;&amp;#x442;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x43A;&amp;#x443; &amp;#x438; &amp;#x434;&amp;#x436;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x44B;, &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x435; &amp;#x443;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x448;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x435;. &amp;#x412; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439;-&amp;#x442;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x442; &amp;#x438;&amp;#x433;&amp;#x440;&amp;#x43E;&amp;#x43A; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x43B; &amp;#x432; &amp;#x43D;&amp;#x435;&amp;#x431;&amp;#x43E;, &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x430; &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x43B;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x432;&amp;#x448;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43F;&amp;#x440;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x434;. &amp;#x421; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x43F;&amp;#x43E;&amp;#x437;&amp;#x438;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x441;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x43E; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x43D;&amp;#x43E;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x430;&amp;#x432;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x442;, &amp;#x432;&amp;#x438;&amp;#x441;&amp;#x435;&amp;#x432;&amp;#x448;&amp;#x438;&amp;#x439; &amp;#x443; &amp;#x438;&amp;#x433;&amp;#x440;&amp;#x43E;&amp;#x43A;&amp;#x430; &amp;#x437;&amp;#x430; &amp;#x441;&amp;#x43F;&amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x439;, &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x451;&amp;#x43B; &amp;#x443; &amp;#x43D;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43C;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x443; &amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x438; &amp;#x43D;&amp;#x430;&amp;#x433;&amp;#x43B;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x447;&amp;#x438;&amp;#x442; &amp;#x434;&amp;#x443;&amp;#x43B;&amp;#x43E;&amp;#x43C; &amp;#x430;&amp;#x43A;&amp;#x43A;&amp;#x443;&amp;#x440;&amp;#x430;&amp;#x442; &amp;#x438;&amp;#x437; &amp;#x448;&amp;#x438;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x43A;&amp;#x438;. &amp;#x41E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E; &amp;#x432;&amp;#x43F;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x43A;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x438; &amp;#x443;&amp;#x43A;&amp;#x440;&amp;#x430;&amp;#x434;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x441;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43A; &amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x438;&amp;#x43A;&amp;#x443; &amp;#x424;&amp;#x440;&amp;#x435;&amp;#x439;&amp;#x434;&amp;#x430;.&lt;br /&gt;&amp;#x410; &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x448;&amp;#x43B;&amp;#x430; &amp;#x434;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44C;. &amp;#x41E;&amp;#x431;&amp;#x44B;&amp;#x43A;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x430;&amp;#x44F; &amp;#x434;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44C;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x44F; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C;. &amp;#x414;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x445; &amp;#x43F;&amp;#x43E;&amp;#x440;, &amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x430; &amp;#x435;&amp;#x451; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x438;&amp;#x437; &amp;#x440;&amp;#x435;&amp;#x436;&amp;#x438;&amp;#x43C;&amp;#x430; &amp;#x444;&amp;#x438;&amp;#x437;&amp;#x438;&amp;#x43A;&amp;#x438; &amp;#x432; &amp;#x440;&amp;#x435;&amp;#x436;&amp;#x438;&amp;#x43C; &amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438;, &amp;#x432; &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43C; &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x43C;&amp;#x435;&amp;#x434;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C;, &amp;#x431;&amp;#x44B;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x445;&amp;#x43B;&amp;#x43E;&amp;#x43F;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C; &amp;#x438; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B;&amp;#x430; goto :begin. &amp;#x418; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x436;&amp;#x435; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x435;&amp;#x439; &amp;#x442;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x439; &amp;#x440;&amp;#x435;&amp;#x436;&amp;#x438;&amp;#x43C; - &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x438; &amp;#x444;&amp;#x438;&amp;#x437;&amp;#x438;&amp;#x43A;&amp;#x430;, &amp;#x438; &amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x44F; &amp;#x441;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;. &amp;#x414;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x430; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x435;&amp;#x446; &amp;#x43F;&amp;#x44C;&amp;#x44F;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x451;&amp;#x436;&amp;#x438;&amp;#x43A;&amp;#x430; &amp;#x432;&amp;#x43E;&amp;#x43A;&amp;#x440;&amp;#x443;&amp;#x433; &amp;#x43A;&amp;#x43E;&amp;#x441;&amp;#x44F;&amp;#x43A;&amp;#x430;, &amp;#x432;&amp;#x44B;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x430;&amp;#x44F; &amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x435;&amp;#x43A;&amp;#x43E; &amp;#x437;&amp;#x430; &amp;#x437;&amp;#x430;&amp;#x43F;&amp;#x43B;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x44B; &amp;#x435;&amp;#x451; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439;. &amp;#x418;&amp;#x441;&amp;#x43F;&amp;#x443;&amp;#x433;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x434;&amp;#x435;&amp;#x432;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x43F;&amp;#x435;&amp;#x440; &amp;#x432;&amp;#x44B;&amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x438;&amp;#x43B; &amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x44E;. &amp;#x414;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x448;&amp;#x43B;&amp;#x430; &amp;#x432; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x44F;, &amp;#x441;&amp;#x43D;&amp;#x44F;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x44C; &amp;#x441; &amp;#x43F;&amp;#x435;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C; &amp;#x438;, &amp;#x438;&amp;#x437;&amp;#x434;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x44F;&amp;#x441;&amp;#x44C; &amp;#x432;&amp;#x43E;&amp;#x43A;&amp;#x440;&amp;#x443;&amp;#x433; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x442;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x43E;&amp;#x441;&amp;#x438;, &amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x430; &amp;#x437;&amp;#x430; &amp;#x433;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x437;&amp;#x43E;&amp;#x43D;&amp;#x442;.&lt;br /&gt;&amp;#x41F;&amp;#x43E;&amp;#x434; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x446; &amp;#x441;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x434;&amp;#x43C;&amp;#x438;&amp;#x43D; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x438;&amp;#x43B; &amp;#x437;&amp;#x430;&amp;#x448;&amp;#x435;&amp;#x434;&amp;#x448;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43A; &amp;#x43D;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43F;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439;-&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438; &amp;#x434;&amp;#x438;&amp;#x440;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x447;&amp;#x430;&amp;#x44E;, &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43E;&amp;#x43D; &amp;#x441;&amp;#x430;&amp;#x43C;, &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x43B;&amp;#x438;, &amp;#x434;&amp;#x43E; &amp;#x441;&amp;#x438;&amp;#x445; &amp;#x43F;&amp;#x43E;&amp;#x440; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x43B; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F; &amp;#x432; &amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; &amp;#x447;&amp;#x430;&amp;#x439;&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x43C;.&lt;br /&gt;&amp;#x427;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x437;&amp;#x430;&amp;#x432;&amp;#x442;&amp;#x440;&amp;#x430;...&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BD%D1%83-%D0%B8-%D0%B4%D0%B5%D0%BD%D1%91%D0%BA.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:29546</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/29546.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=29546"/>
    <title>On Vox: TWIMC</title>
    <published>2009-05-19T19:20:56Z</published>
    <updated>2009-05-19T19:20:56Z</updated>
    <content type="html">&lt;p&gt;&amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x43E;, &amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x43C;&amp;#x43D;&amp;#x435; &amp;#x447;&amp;#x430;&amp;#x439;&amp;#x43D;&amp;#x438;&amp;#x43A; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C;: &lt;span&gt;http://migmit.mybrute.com&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/twimc.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:29279</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/29279.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=29279"/>
    <title>On Vox: Классы как типы</title>
    <published>2009-05-15T19:42:10Z</published>
    <updated>2009-05-19T19:23:38Z</updated>
    <content type="html">&lt;p&gt;А мне всего-то хотелось сделать композицию трансформеров...&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#b12121"&gt;{-&lt;/font&gt;&lt;font color="#b12121"&gt;# LANGUAGE GeneralizedNewtypeDeriving, RankNTypes, TypeOperators #-}&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;module&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Control.Monad&lt;/font&gt;&lt;/pre&gt;Допустим, мы хотим применить к некоторой монаде несколько трансформеров. Причём, мы заранее не знаем, к какой именно монаде - но знаем, какие трансформеры. Ну, например, пусть это будут&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; {runStateT &lt;font color="#b8850a"&gt;::&lt;/font&gt; s &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; m (s, x)}
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     return x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;s &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; return (s, x)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     st &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; f &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;s &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; runStateT st s &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;(s', x) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; runStateT (f x) s'&lt;/pre&gt;и&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; r m x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; {runReaderT &lt;font color="#b8850a"&gt;::&lt;/font&gt; r &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; m x}
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; r m) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     return x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;r &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; return x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     rt &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; f &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;r &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; runReaderT rt r &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; runReaderT (f x) r&lt;/pre&gt;Конечно, нет никакой проблемы написать трансформер-композицию.&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;SRT&lt;/font&gt; s r m x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;SRT&lt;/font&gt; (&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; r (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m) x)&lt;/pre&gt;Далее, можно точно также объявить&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;SRT&lt;/font&gt; s r m)&lt;/pre&gt;и жить припеваючи.&lt;/p&gt;&lt;p&gt;Но очень хотелось бы сделать это единообразно, написать единый оператор композиции трансформеров. А то вдруг, скажем, мы решим поменять порядок этих трансформеров - что же тогда, инстанс переделывать?&lt;/p&gt;&lt;p&gt;Попробуем это сделать. Для начала, всё-таки, объявим класс для трансформеров, чтобы не всухомятку обсуждать:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    lift &lt;font color="#b8850a"&gt;::&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; t m x&lt;/pre&gt;И сделаем простенькую композицию:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;newtype&lt;/font&gt; (&lt;font color="#218a21"&gt;Trans&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) m x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; {runCompose &lt;font color="#b8850a"&gt;::&lt;/font&gt; t2 (t1 m) x} &lt;font color="#7f007f"&gt;deriving&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt;&lt;/pre&gt;Контекст здесь нужен, на самом деле, только для того, чтобы все kind-ы были правильными. Позднее мы его несколько ослабим.&lt;/p&gt;&lt;p&gt;Далее, нужно, чтобы это был снова трансформер:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Trans&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    lift &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; &lt;font color="#b8850a"&gt;.&lt;/font&gt; lift &lt;font color="#b8850a"&gt;.&lt;/font&gt; lift&lt;/pre&gt;Пока что, всё работает прекрасно. Давайте же сделаем два наших трансформера инстансами соответствующего класса, зарелизим библиотеку на Hackage и пойдём пить кофе с бубликами.&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    lift mx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; smx
        &lt;font color="#7f007f"&gt;where&lt;/font&gt; smx s &lt;font color="#b8850a"&gt;=&lt;/font&gt;
                  &lt;font color="#7f007f"&gt;do&lt;/font&gt; x &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; mx
                     return (s, x)&lt;/pre&gt;Упс. Получили ругань:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;54&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;23&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:
    &lt;/u&gt;Could not deduce (Monad m) from the context ()
      arising from a do statement
&lt;u&gt;                   at &lt;/u&gt;&lt;font color="#00cd00"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;54&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;23&lt;/u&gt;&lt;/font&gt;&lt;u&gt;-&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;29&lt;/u&gt;&lt;/font&gt;
    Possible fix:
      add (Monad m) to the context of the type signature for `lift'
    In a stmt of a 'do' expression: x &amp;lt;- mx
    In the expression:
        do x &amp;lt;- mx
           return (s, x)
    In the definition of `smx':
        smx s = do x &amp;lt;- mx
                   return (s, x)
Failed, modules loaded: none.
&lt;/pre&gt;Фикус в том, что для того, чтобы написать нашу функцию &lt;code&gt;lift&lt;/code&gt;, нам нужно использовать, что аргумент засунут именно в монаду, а не во что-то ещё. Действительно нужно, это не фантазия какая-то.&lt;/p&gt;&lt;p&gt;Попробуем пофиксить, изменив сигнатуру &lt;code&gt;lift&lt;/code&gt;.&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    lift &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; t m x&lt;/pre&gt;Опять облом.&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;49&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;23&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:
    &lt;/u&gt;Could not deduce (Monad (t1 m)) from the context (Monad m)
      arising from a use of `lift'
&lt;u&gt;                   at &lt;/u&gt;&lt;font color="#00cd00"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;49&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;23&lt;/u&gt;&lt;/font&gt;&lt;u&gt;-&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;26&lt;/u&gt;&lt;/font&gt;
    Possible fix:
      add (Monad (t1 m)) to the context of the type signature for `lift'
      or add an instance declaration for (Monad (t1 m))
    In the first argument of `(.)', namely `lift'
    In the second argument of `(.)', namely `lift . lift'
    In the expression: Compose . lift . lift
Failed, modules loaded: none.
&lt;/pre&gt;Теперь проблема в том, что из &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m&lt;/code&gt; и &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t&lt;/code&gt; не следует &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (t m)&lt;/code&gt;. Практически это всегда так - по крайней мере, это так для двух трансформеров, которые мы определили в самом начале. Но у нас нет способа убедить компилятор, что это и будет всегда так.&lt;/p&gt;&lt;p&gt;Подход, принятый в шаблонах C++ заключается в том, чтобы забить на контекст вообще и ругаться, если он не выполняется в каждом конкретном случае. Думаю, в языке, принимающем статическую типизацию близко к сердцу, подобный вариант не имеет права на существование.&lt;/p&gt;&lt;p&gt;В Языке Моей Мечты(tm) я бы написал так:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    lift &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; t m x
    &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (t m)&lt;/pre&gt;После чего я перенёс бы &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m)&lt;/code&gt; внутрь &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s)&lt;/code&gt; и всё заработало бы. Увы, Язык Моей Мечты(tm) пока лишён важной утилиты, а именно, компилятора. Нет, интерпретатора тоже нет. Так что, этот способ тоже не сработает.&lt;/p&gt;&lt;p&gt;Попробуем иначе. Что нам нужно, так это добавить в класс &lt;code&gt;&lt;font color="#218a21"&gt;Trans&lt;/font&gt;&lt;/code&gt; какую-то функцию, которая сообщит компилятору, что происходит именно преобразование &lt;b&gt;монад&lt;/b&gt;, а не чего-то ещё. Иначе говоря, нам нужно работать с классом &lt;code&gt;&lt;font color="#218a21"&gt;Monad&lt;/font&gt;&lt;/code&gt; как с типом данных.&lt;/p&gt;&lt;p&gt;Попробуем это сделать.&lt;/p&gt;&lt;p&gt;Что вообще означает, что некоторый тип &lt;code&gt;&lt;font color="#218a21"&gt;T&lt;/font&gt;&lt;/code&gt; является монадой? Это означает, что для данного типа определены несколько операций. Как учит нас теория категорий, где есть алгебраические операции (или похожие на них), стоит искать... монаду. Да-да, монаду. Правда, так как наши типы имеют не тот kind, эта монада также будет монадой на другой категории. Следовательно, имеет смысл для начала определить эту категорию:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;type&lt;/font&gt; (m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; n) &lt;font color="#b8850a"&gt;=&lt;/font&gt; forall x&lt;font color="#b8850a"&gt;.&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; n x&lt;/pre&gt;Вот они - морфизмы нашей новой категории.&lt;/p&gt;&lt;p&gt;Далее, опять же, теория категорий учит, что новую монаду нужно определять так: объекту &lt;code&gt;p&lt;/code&gt; ставится в соответствие нечто вроде "множества всех выражений, составленных при помощи заданных операций из элементов &lt;code&gt;p&lt;/code&gt;". То есть, в нашем случае подошло бы что-то в таком духе:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;data&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x &lt;font color="#7f007f"&gt;where&lt;/font&gt;
    &lt;font color="#218a21"&gt;Term&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; p x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x
    &lt;font color="#218a21"&gt;Return&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x
    &lt;font color="#218a21"&gt;Bind&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p y) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p y&lt;/pre&gt;Я, однако, предпочитаю более простой и универсальный подход. Сейчас я определю &lt;i&gt;тот же&lt;/i&gt; тип, но по-другому. Вуаля:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; {bindM &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; (p &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; m x}&lt;/pre&gt;Это и правда то же самое. Теперь, &lt;code&gt;&lt;font color="#218a21"&gt;MonadM&lt;/font&gt;&lt;/code&gt; имеет kind&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;
&lt;font color="#00008b"&gt;*MonadM&amp;gt; &lt;/font&gt;&lt;b&gt;:k MonadM&lt;/b&gt;
&lt;font color="#0000ff"&gt;MonadM&lt;/font&gt; :: (* -&amp;gt; *) -&amp;gt; * -&amp;gt; *
&lt;/pre&gt;и, следовательно, похож на монаду &lt;b&gt;на категории типов kind-a  &lt;code&gt;(* -&amp;gt; *)&lt;/code&gt;&lt;/b&gt;. Не хватает только функций &lt;code&gt;return&lt;/code&gt; и &lt;code&gt;(&lt;font color="#0000ff"&gt;&amp;gt;&amp;gt;=&lt;/font&gt;)&lt;/code&gt; для полного счастья. Сейчас мы их определим.&lt;/p&gt;&lt;p&gt;Начнём с &lt;code&gt;return&lt;/code&gt;. Обычно, эта функция имеет тип &lt;code&gt;x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; m x&lt;/code&gt; (так она определена в классе &lt;code&gt;&lt;font color="#218a21"&gt;Monad&lt;/font&gt;&lt;/code&gt;). У нас, следовательно, тип будет&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;term&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; p &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p&lt;/pre&gt;Такую функцию написать несложно, и делается это, по существу, единственным образом:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;term&lt;/font&gt; px &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;hom &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; hom px&lt;/pre&gt;Далее, оператор &lt;code&gt;(&lt;font color="#0000ff"&gt;&amp;gt;&amp;gt;=&lt;/font&gt;)&lt;/code&gt;. Он у нас, по сути, уже есть. Это функция &lt;code&gt;bindM&lt;/code&gt;. Её тип поначалу не кажется похожим на то, что нам нужно, но только потому, что у нас не хватает ещё одного важного элемента:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     return x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;hom &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; return x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     mpx &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; f &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;hom &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; bindM mpx hom &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; bindM (f x) hom&lt;/pre&gt;В этом определении мы просто говорим, что правая часть, по существу, совпадает с левой, только вокруг тех штук, которые имеют тип &lt;code&gt;&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; p x&lt;/code&gt; добавляется некий line noise в виде &lt;code&gt;bindM&lt;/code&gt; и &lt;code&gt;hom&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Теперь мы видим, что функция &lt;code&gt;bindM&lt;/code&gt; имеет тип, который, во всяком случае, не хуже, чем то, что нам нужно:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;
&lt;font color="#00008b"&gt;*MonadM&amp;gt; &lt;/font&gt;&lt;b&gt;:set -XTypeOperators -XRankNTypes&lt;/b&gt;
&lt;font color="#00008b"&gt;*MonadM&amp;gt; &lt;/font&gt;&lt;b&gt;:t bindM :: MonadM p x -&amp;gt; (p :-&amp;gt; MonadM p) -&amp;gt; MonadM p x&lt;/b&gt;
&lt;font color="#0000ff"&gt;bindM&lt;/font&gt; :: MonadM p x -&amp;gt; (p :-&amp;gt; MonadM p) -&amp;gt; MonadM p x
  :: MonadM p x -&amp;gt; (p :-&amp;gt; MonadM p) -&amp;gt; MonadM p x
&lt;/pre&gt;Хорошо. Далее, то, чему не учат в Haskell-школах: конкретный объект с нужными нам операциями является ни чем иным как &lt;b&gt;алгеброй&lt;/b&gt; над подобной монадой. В нашем случае это значит, что каждая монада является алгеброй над  &lt;code&gt;&lt;font color="#218a21"&gt;MonadM&lt;/font&gt;&lt;/code&gt;. Более конкретно, для каждой монады есть отображение&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#0000ff"&gt;alg&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m&lt;/pre&gt;Именно, оно пишется так:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#0000ff"&gt;alg&lt;/font&gt; (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; h) &lt;font color="#b8850a"&gt;=&lt;/font&gt; h id&lt;/pre&gt;В данном случае, &lt;code&gt;id&lt;/code&gt; имеет тип &lt;code&gt;m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Как же это поможет нам решить нашу проблему? А вот как: по сути дела, указать для некоторого типа отображение &lt;code&gt;alg&lt;/code&gt; и определить для этого же типа &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt;&lt;/code&gt; - одно и то же. !. Я определю специальный тип:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; {getInst &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m}&lt;/pre&gt;и навешу конструктор на &lt;code&gt;alg&lt;/code&gt; следующим образом:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;alg&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;alg&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;mmx &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; bindM mmx id&lt;/pre&gt;Далее, идеология происходящего следующая. Если нам нужно что-то сделать с типом &lt;code&gt;m&lt;/code&gt;, для чего требуется &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt;&lt;/code&gt;, а у нас вместо него только значение &lt;code&gt;&lt;font color="#0000ff"&gt;inst&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m&lt;/code&gt;, то мы проделываем всё необходимое, используя вместо &lt;code&gt;m&lt;/code&gt; тип &lt;code&gt;&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m&lt;/code&gt; (который всегда является монадой - определение только что было), а потом переносим это на тип &lt;code&gt;m&lt;/code&gt;, используя при этом отображения &lt;code&gt;term &lt;font color="#b8850a"&gt;::&lt;/font&gt; m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m&lt;/code&gt; и &lt;code&gt;getInst inst &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Для того, чтобы этот перенос осуществить, нам потребуется такой класс:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso &lt;font color="#b8850a"&gt;::&lt;/font&gt; (m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; n) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (n &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; m) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (t m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; t n)&lt;/pre&gt;На самом деле, мне неизвестны трансформеры монад, которые не были бы ковариантны по этим монадам, так что можно сократить сигнатуру:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso &lt;font color="#b8850a"&gt;::&lt;/font&gt; (m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; n) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (t m &lt;font color="#218a21"&gt;:-&amp;gt;&lt;/font&gt; t n)&lt;/pre&gt; &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt;&lt;/code&gt; обычно пишется несложно и бойлерплейт получится весьма небольшой.&lt;/p&gt;&lt;p&gt;В частности, например, легко написать такое:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;infixl&lt;/font&gt; 1 &lt;font color="#b8850a"&gt;`bindM`&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso hom mmx &lt;font color="#b8850a"&gt;=&lt;/font&gt; mmx &lt;font color="#b8850a"&gt;`bindM`&lt;/font&gt; term &lt;font color="#b8850a"&gt;.&lt;/font&gt; hom&lt;/pre&gt;Заметьте, я здесь, фактически, воспроизвёл определение функции &lt;code&gt;liftM&lt;/code&gt;:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#0000ff"&gt;liftM&lt;/font&gt; f mx &lt;font color="#b8850a"&gt;=&lt;/font&gt; mx &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; return &lt;font color="#b8850a"&gt;.&lt;/font&gt; f&lt;/pre&gt;Класс трансформеров теперь определяется так:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     lift &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; t m x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     liftInst &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; (t m)&lt;/pre&gt;Обратите внимание на изменившийся контекст.&lt;/p&gt;&lt;p&gt;В частности, теперь можно сделать трансформером композицию трансформеров.&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; (&lt;font color="#218a21"&gt;Iso&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) m x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; {runCompose &lt;font color="#b8850a"&gt;::&lt;/font&gt; t2 (t1 m) x} &lt;font color="#7f007f"&gt;deriving&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;infixr&lt;/font&gt; 9 &lt;font color="#218a21"&gt;:.&lt;/font&gt;&lt;/pre&gt;Здесь я изменил контекст с &lt;code&gt;&lt;font color="#218a21"&gt;Trans&lt;/font&gt;&lt;/code&gt; на &lt;code&gt;&lt;font color="#218a21"&gt;Iso&lt;/font&gt;&lt;/code&gt;, чтобы следующий инстанс выглядел более вменяемо:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Iso&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso hom ttmx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; iso (iso hom) &lt;font color="#b8850a"&gt;$&lt;/font&gt; runCompose ttmx&lt;/pre&gt;Ну и, как я и обещал, композиция трансформеров - трансформер:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Trans&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Trans&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) &lt;font color="#7f007f"&gt;where&lt;/font&gt;&lt;/pre&gt;Нам нужно пройти от &lt;code&gt;m x&lt;/code&gt; к &lt;code&gt;(t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) m x&lt;/code&gt;&lt;/p&gt;&lt;p&gt;Обычно мы пошли бы по маршруту &lt;code&gt;m x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; t1 m x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; t2 (t1 m) x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; (t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) m x&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Увы, если первый и последний шаги особых проблем не представляют, то второй шаг, увы, невозможен, так как &lt;code&gt;t1 m&lt;/code&gt; не является монадой (по крайней мере, мы не можем убедить компилятор, что является). Однако, у нас есть значение &lt;code&gt;alg &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m&lt;/code&gt;, и, следовательно, также и значение &lt;code&gt;liftInst alg &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; (t1 m)&lt;/code&gt;. В соответствии с общей идеологией, мы сделаем второй шаг несколько более длинным, а именно, пройдём по маршруту &lt;code&gt;t1 m x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; (t1 m) x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; t2 (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; (t1 m)) x &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; t2 (t1 m) x&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Делаем:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;    lift &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; &lt;font color="#b8850a"&gt;.&lt;/font&gt; step2 &lt;font color="#b8850a"&gt;.&lt;/font&gt; lift
        &lt;font color="#7f007f"&gt;where&lt;/font&gt; step2 &lt;font color="#b8850a"&gt;=&lt;/font&gt; iso (getInst &lt;font color="#b8850a"&gt;$&lt;/font&gt; liftInst alg) &lt;font color="#b8850a"&gt;.&lt;/font&gt; lift &lt;font color="#b8850a"&gt;.&lt;/font&gt; term&lt;/pre&gt;или, коль скоро принцип ясен,&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     lift &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; &lt;font color="#b8850a"&gt;.&lt;/font&gt; iso (getInst &lt;font color="#b8850a"&gt;$&lt;/font&gt; liftInst alg) &lt;font color="#b8850a"&gt;.&lt;/font&gt; lift &lt;font color="#b8850a"&gt;.&lt;/font&gt; term&lt;font color="#b8850a"&gt;.&lt;/font&gt; lift
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     liftInst &lt;font color="#b8850a"&gt;=&lt;/font&gt; isoInst &lt;font color="#b8850a"&gt;.&lt;/font&gt; liftInst &lt;font color="#b8850a"&gt;.&lt;/font&gt; liftInst
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; isoInst &lt;font color="#b8850a"&gt;::&lt;/font&gt; (&lt;font color="#218a21"&gt;Iso&lt;/font&gt; t1, &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t2) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; (t2 (t1 m)) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; ((t2 &lt;font color="#218a21"&gt;:.&lt;/font&gt; t1) m)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;               isoInst inst &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;mmx &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Compose&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; getInst inst &lt;font color="#b8850a"&gt;$&lt;/font&gt; iso runCompose mmx&lt;/pre&gt;Пока всё не слишком (надеюсь) сложно. Но сумеем ли мы сделать наши &lt;code&gt;&lt;font color="#218a21"&gt;StateT&lt;/font&gt;&lt;/code&gt; и &lt;code&gt;&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt;&lt;/code&gt; инстансами класса &lt;code&gt;&lt;font color="#218a21"&gt;Trans&lt;/font&gt;&lt;/code&gt;? Ну, первая часть проблем не вызывает:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s) &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso hom smx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; hom &lt;font color="#b8850a"&gt;.&lt;/font&gt; runStateT smx
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     lift mx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; smx
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; smx s &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                   &lt;font color="#7f007f"&gt;do&lt;/font&gt; x &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; mx
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                      return (s, x)&lt;/pre&gt;Здесь почти ничего не изменилось. Далее, нам нужно от &lt;code&gt;&lt;font color="#218a21"&gt;Inst&lt;/font&gt; m&lt;/code&gt; перейти к &lt;code&gt;&lt;font color="#218a21"&gt;Inst&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m)&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Если бы &lt;code&gt;m&lt;/code&gt; было монадой, то всё было бы не просто, а очень просто: достаточно было бы использовать значение &lt;code&gt;alg&lt;/code&gt;, поскольку &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m)&lt;/code&gt; у нас уже есть. Увы, &lt;code&gt;m&lt;/code&gt; не обязательно является монадой, однако мы начинаем со значения типа &lt;code&gt;&lt;font color="#218a21"&gt;Inst&lt;/font&gt; m&lt;/code&gt;! В соответствии с общей идеологией, мы пройдём по маршруту &lt;code&gt;&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m) &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MonadM&lt;/font&gt; (&lt;font color="#218a21"&gt;StateT&lt;/font&gt; s (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m)) &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; s (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m) &lt;font color="#b8850a"&gt;--&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;StateT&lt;/font&gt; s m&lt;/code&gt; следующим образом:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;    liftInst inst &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; iso (getInst inst) &lt;font color="#b8850a"&gt;.&lt;/font&gt; getInst alg &lt;font color="#b8850a"&gt;.&lt;/font&gt; iso (iso term)&lt;/pre&gt;У меня лично сразу проситься вынести &lt;code&gt;alg&lt;/code&gt; в дополнительный параметр и написать так:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     liftInst &lt;font color="#b8850a"&gt;=&lt;/font&gt; makeLiftInst alg
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;makeLiftInst&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; t &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; (t (&lt;font color="#218a21"&gt;MonadM&lt;/font&gt; m)) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; m &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; (t m)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;makeLiftInst&lt;/font&gt; alg' inst &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Inst&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; iso (getInst inst) &lt;font color="#b8850a"&gt;.&lt;/font&gt; getInst alg' &lt;font color="#b8850a"&gt;.&lt;/font&gt; iso (iso term)&lt;/pre&gt;Тип для функции &lt;code&gt;makeLiftInst&lt;/code&gt;, признаюсь, написал не я, а компилятор. Ну, пусть будет.&lt;/p&gt;&lt;p&gt;Аналогично пишется инстанс для &lt;code&gt;&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt;&lt;/code&gt;:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Iso&lt;/font&gt; (&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; r) &lt;font color="#7f007f"&gt;where&lt;/font&gt; iso hom rmx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; hom &lt;font color="#b8850a"&gt;.&lt;/font&gt; runReaderT rmx
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Trans&lt;/font&gt; (&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; r) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     lift mx &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; const mx
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     liftInst &lt;font color="#b8850a"&gt;=&lt;/font&gt; makeLiftInst alg&lt;/pre&gt;Обратите внимание, что объявление функции &lt;code&gt;liftInst&lt;/code&gt; совершенно одинаковое, что для &lt;code&gt;&lt;font color="#218a21"&gt;StateT&lt;/font&gt;&lt;/code&gt;, что для &lt;code&gt;&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt;&lt;/code&gt;. Мы можем написать ещё несколько трансформеров, но везде будет то же самое. Нельзя ли его написать, например, как дефолтную реализацию в самом классе? Попробовав, получаем&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;
&lt;font color="#ff0000"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;392&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;30&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:
    &lt;/u&gt;Could not deduce (Monad (t (MonadM m))) from the context ()
      arising from a use of `alg'
&lt;u&gt;                   at &lt;/u&gt;&lt;font color="#00cd00"&gt;&lt;b&gt;&lt;u&gt;MonadM.lhs&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#b8860b"&gt;&lt;u&gt;392&lt;/u&gt;&lt;/font&gt;&lt;u&gt;:&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;30&lt;/u&gt;&lt;/font&gt;&lt;u&gt;-&lt;/u&gt;&lt;font color="#228b22"&gt;&lt;u&gt;32&lt;/u&gt;&lt;/font&gt;
    Possible fix:
      add (Monad (t (MonadM m))) to the context of
        the type signature for `liftInst'
      or add an instance declaration for (Monad (t (MonadM m)))
    In the first argument of `makeLiftInst', namely `alg'
    In the expression: makeLiftInst alg
    In the definition of `liftInst': liftInst = makeLiftInst alg
Failed, modules loaded: none.
&lt;/pre&gt;Увы, так не получится. Причина здесь в том, что мы для каждого конкретного &lt;code&gt;&lt;font color="#218a21"&gt;T&lt;/font&gt;&lt;/code&gt; определяем &lt;code&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;T&lt;/font&gt; m)&lt;/code&gt; отдельно, и строчка &lt;code&gt;&lt;font color="#0000ff"&gt;liftInst&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; makeLiftInst alg&lt;/code&gt; как бы является обещанием, что такой инстанс определён где-то в другом месте; компилятор же это обещание тщательно проверит.&lt;/p&gt;&lt;p&gt;На закуску - применение трансформера к монаде. Конечно, можно применять и так, но в некоторых случаях более общий подход может пригодиться:&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;newtype&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; (t &lt;font color="#218a21"&gt;:$&lt;/font&gt; m) x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Apply&lt;/font&gt; {runApply &lt;font color="#b8850a"&gt;::&lt;/font&gt; t m x}
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;infixr&lt;/font&gt; 0 &lt;font color="#218a21"&gt;:$&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Trans&lt;/font&gt; t, &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (t &lt;font color="#218a21"&gt;:$&lt;/font&gt; m) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     return x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Apply&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; getInst (liftInst alg) &lt;font color="#b8850a"&gt;$&lt;/font&gt; return x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     tmx &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; f &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Apply&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; getInst (liftInst alg) &lt;font color="#b8850a"&gt;$&lt;/font&gt; term (runApply tmx) &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; term (runApply &lt;font color="#b8850a"&gt;$&lt;/font&gt; f x)&lt;/pre&gt;Фикус в том, что мы дописываем к значениям &lt;code&gt;&lt;font color="#0000ff"&gt;tmx&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; (t &lt;font color="#218a21"&gt;:$&lt;/font&gt; x) x&lt;/code&gt; мусор вида &lt;code&gt;term (runApply tmx)&lt;/code&gt;, а обратно приходим при помощи &lt;code&gt;&lt;font color="#218a21"&gt;Apply&lt;/font&gt; &lt;font color="#b8850a"&gt;.&lt;/font&gt; getInst (liftInst alg)&lt;/code&gt;. В остальном же, мы просто в правой части повторяем левую.&lt;/p&gt;&lt;p&gt;Теперь можно писать, например, &lt;code&gt;(&lt;font color="#218a21"&gt;StateT&lt;/font&gt; &lt;font color="#218a21"&gt;Int&lt;/font&gt; &lt;font color="#218a21"&gt;:.&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#218a21"&gt;:$&lt;/font&gt; &lt;font color="#218a21"&gt;Maybe&lt;/font&gt;) &lt;font color="#218a21"&gt;Char&lt;/font&gt;&lt;/code&gt; и это будет примерно (с точностью до newtype-ов) то же самое, что и &lt;code&gt;(&lt;font color="#218a21"&gt;StateT&lt;/font&gt; &lt;font color="#218a21"&gt;Int&lt;/font&gt; &lt;font color="#218a21"&gt;:$&lt;/font&gt; &lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#218a21"&gt;:$&lt;/font&gt; &lt;font color="#218a21"&gt;Maybe&lt;/font&gt;) &lt;font color="#218a21"&gt;Char&lt;/font&gt;&lt;/code&gt; или &lt;code&gt;&lt;font color="#218a21"&gt;State&lt;/font&gt; &lt;font color="#218a21"&gt;Int&lt;/font&gt; (&lt;font color="#218a21"&gt;ReaderT&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; (&lt;font color="#218a21"&gt;Maybe&lt;/font&gt; &lt;font color="#218a21"&gt;Char&lt;/font&gt;))&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Если кто-то вдруг захочет написать собственный трансформер  &lt;code&gt;&lt;font color="#218a21"&gt;MyCoolTransformer&lt;/font&gt;&lt;/code&gt; - нет проблем, пусть сделает три вещи:&lt;/p&gt;&lt;p&gt;1)&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; m &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;MyCoolTransformer&lt;/font&gt; m)&lt;/pre&gt;Если этого не сделать, то непонятно, почему вообще речь идёт о трансформерах монад.&lt;/p&gt;&lt;p&gt;2)&lt;pre style="white-space:pre-wrap; white-space:-moz-pre-wrap"&gt;&lt;font color="#0000ff"&gt;lift&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; m x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;MyCoolTransformer&lt;/font&gt; m x&lt;/pre&gt;Это - то, для чего трансформеры монад действительно нужны.&lt;/p&gt;&lt;p&gt;3) Заклинание &lt;code&gt;&lt;font color="#0000ff"&gt;liftInst&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; makeLiftInst alg&lt;/code&gt;, которое пишется без участия мозга. Как видим, весь бойлерплейт сведён к одной строчке - что можно записывать как победу.&lt;/p&gt;&lt;p&gt;Маленькое замечание: здесь мы почти не пользовались тем, что речь идёт именно о монадах. Точно то же самое можно написать про трансформеры, например, стрелок. Понадобиться только а) изменить понятие морфизма, так как стрелки имеют другой kind, б) заменить два инстанса на полностью аналогичные, один для нашей "монады" (которая, если мы заменим монады на стрелки,.. останется монадой), и один для оператора применения трансформера к &lt;s&gt;монаде&lt;/s&gt;стрелке.&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B-%D0%BA%D0%B0%D0%BA-%D1%82%D0%B8%D0%BF%D1%8B.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:28683</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/28683.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=28683"/>
    <title>On Vox: Когда-то, когда я был гораздо моложе...</title>
    <published>2009-04-25T16:08:43Z</published>
    <updated>2009-04-25T16:08:43Z</updated>
    <content type="html">&lt;p&gt;&amp;#x44F; &amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x43E;&amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x41B;&amp;#x438;&amp;#x441;&amp;#x43F;. &amp;#x418; &amp;#x442;&amp;#x430;&amp;#x43C; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x430; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430; &amp;#x432;&amp;#x435;&amp;#x449;&amp;#x44C;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x443;&amp;#x44E; &amp;#x43C;&amp;#x43E;&amp;#x451; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x432;&amp;#x441;&amp;#x44F;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x437; &amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x433;&amp;#x430;&amp;#x43B;&amp;#x43E;.&lt;/p&gt;&lt;p&gt;&amp;#x42F; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x446;&amp;#x438;&amp;#x43F;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x433; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x44C;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x44D;&amp;#x442;&amp;#x43E; - &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x439; &amp;#x442;&amp;#x438;&amp;#x43F;&amp;#x430; progn &amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x440;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;. &amp;#x410; &amp;#x43A;&amp;#x443;&amp;#x434;&amp;#x430; &amp;#x436;&amp;#x435; &amp;#x434;&amp;#x435;&amp;#x432;&amp;#x430;&amp;#x44E;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x44B; &amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x445;???&lt;/p&gt;&lt;p&gt;&amp;#x41D;&amp;#x435;&amp;#x442;, &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x43C;&amp;#x43E;&amp;#x43C; &amp;#x44F; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x44E;: &amp;#x43E;&amp;#x43D;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x437;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x44F;&amp;#x442; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x441;&amp;#x430;&amp;#x439;&amp;#x434;-&amp;#x44D;&amp;#x444;&amp;#x444;&amp;#x435;&amp;#x43A;&amp;#x442;. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x431;&amp;#x43B;&amp;#x435;&amp;#x43C;&amp;#x430; &amp;#x432; &amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;, &amp;#x438; &amp;#x442;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x43E; &amp;#x441;&amp;#x43C;&amp;#x44B;&amp;#x441;&amp;#x43B;&amp;#x443; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x43E;, &amp;#x430; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x441;&amp;#x430;&amp;#x439;&amp;#x434;-&amp;#x44D;&amp;#x444;&amp;#x444;&amp;#x435;&amp;#x43A;&amp;#x442;&amp;#x430;, &amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;. &amp;#x41F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x44C; &amp;#x44D;&amp;#x442;&amp;#x443; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x435;&amp;#x43F;&amp;#x446;&amp;#x438;&amp;#x44E; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x434;&amp;#x446;&amp;#x435;&amp;#x43C; &amp;#x44F; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x433;. &amp;#x41C;&amp;#x43D;&amp;#x435; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F; &amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x440;&amp;#x435;&amp;#x437;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x430;&amp;#x442; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x448;&amp;#x442;&amp;#x443;&amp;#x43A;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43D;, &amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x451; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x43A;&amp;#x438;&amp;#x43D;&amp;#x443;&amp;#x442;&amp;#x44C;, &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x444;&amp;#x438;&amp;#x433; &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x430;.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x430;&amp;#x436;&amp;#x435; &amp;#x432; &amp;#x41F;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x43B;&amp;#x435; &amp;#x441;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x432;&amp;#x438;&amp;#x434;&amp;#x43D;&amp;#x43E; - &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x443; &amp;#x43D;&amp;#x430;&amp;#x441; ":=" &amp;#x438; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x435;&amp;#x43C;&amp;#x43E;&amp;#x435; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;; &amp;#x430; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x443; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; ":=" &amp;#x43D;&amp;#x435;&amp;#x442;, &amp;#x438; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x441;&amp;#x430;&amp;#x439;&amp;#x434;-&amp;#x44D;&amp;#x444;&amp;#x444;&amp;#x435;&amp;#x43A;&amp;#x442;.&lt;/p&gt;&lt;p&gt;&amp;#x418; &amp;#x43F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C;&amp;#x44E; do-&amp;#x441;&amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x441;&amp;#x438;&amp;#x441;&amp;#x430; &amp;#x432; &amp;#x425;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x435;&amp;#x43B;&amp;#x435; &amp;#x44F; &amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x44E; &amp;#x441;&amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x441;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x443;&amp;#x44E; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x443; &amp;#x43C;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x443; &amp;#x434;&amp;#x435;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x438;&amp;#x435;&amp;#x43C; &amp;#x438; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x43C; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x439;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;span style="color: #7f007f"&gt;do&lt;/span&gt; action&lt;br /&gt;&amp;#xA0;&amp;#xA0; &lt;span style="color: #b8850a"&gt;...&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x438;&amp;#x43B;&amp;#x438;&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;span style="color: #7f007f"&gt;do&lt;/span&gt; var &lt;span style="color: #b8850a"&gt;&amp;lt;-&lt;/span&gt; expression&lt;br /&gt;&amp;#xA0;&amp;#xA0; &lt;span style="color: #b8850a"&gt;...&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D1%82%D0%BE-%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D1%8F-%D0%B1%D1%8B%D0%BB-%D0%B3%D0%BE%D1%80%D0%B0%D0%B7%D0%B4%D0%BE-%D0%BC%D0%BE%D0%BB%D0%BE%D0%B6%D0%B5.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:28478</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/28478.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=28478"/>
    <title>On Vox: Игрушечный веб - 3</title>
    <published>2009-04-22T10:51:02Z</published>
    <updated>2009-04-22T11:02:54Z</updated>
    <content type="html">&lt;p&gt;&amp;#x42F; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43B; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x442; &amp;#x447;&amp;#x451;&amp;#x440;&amp;#x442;&amp;#x43E;&amp;#x432; ArrowLoop!&lt;/p&gt;&lt;p&gt;&amp;#x41D;&amp;#x435; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x443; &amp;#x431;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x434;&amp;#x443;&amp;#x43B;&amp;#x435;&amp;#x439; - &amp;#x43D;&amp;#x430; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435; &amp;#x443; &amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F; &amp;#x441;&amp;#x435;&amp;#x439;&amp;#x447;&amp;#x430;&amp;#x441; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x441;&amp;#x438;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x438;&amp;#x437;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439;, &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44F; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x448;&amp;#x443;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; ArrowLoop - &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x443;&amp;#x44F; &amp;#x43F;&amp;#x440;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x442;&amp;#x440;&amp;#x438; &amp;#x43C;&amp;#x43E;&amp;#x434;&amp;#x443;&amp;#x43B;&amp;#x44F; &amp;#x438;&amp;#x437; &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1---1.html"&gt;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43D;&amp;#x433;&amp;#x430;&lt;/a&gt; &amp;#x43D;&amp;#x430; &amp;#x44D;&amp;#x442;&amp;#x443; &amp;#x442;&amp;#x435;&amp;#x43C;&amp;#x443;.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x43B;&amp;#x44F; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x430; - &amp;#x448;&amp;#x430;&amp;#x43F;&amp;#x43A;&amp;#x430;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #b12121"&gt;{-&lt;/span&gt;&lt;span style="color: #b12121"&gt;# LANGUAGE Arrows #-}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;module&lt;/span&gt; &lt;span style="color: #218a21"&gt;Loop&lt;/span&gt; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Control.Arrow&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #7f007f"&gt;qualified&lt;/span&gt; &lt;span style="color: #218a21"&gt;Control.Category&lt;/span&gt; &lt;span style="color: #7f007f"&gt;as&lt;/span&gt; &lt;span style="color: #218a21"&gt;C&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Control.Monad&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Control.Monad.Fix&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Data.Maybe&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Data.Monoid&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Pointed&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;Serialize&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;import&lt;/span&gt; &lt;span style="color: #218a21"&gt;NetState&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x417;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x43D;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E;. &amp;#x415;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x447;&amp;#x442;&amp;#x43E; - &amp;#x44F; &amp;#x438;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x442;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x44E; Control.Monad.Fix, &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x43C; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x43C;&amp;#x43D;&amp;#x435; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x443;&amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x43E; &amp;#x44F;&amp;#x432;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x44E; fix.&lt;/p&gt;&lt;p&gt;&amp;#x422;&amp;#x438;&amp;#x43F; Signal &amp;#x438;&amp;#x437; &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1---2.html"&gt;&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x44B;&amp;#x434;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43D;&amp;#x433;&amp;#x430;&lt;/a&gt; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x43F;&amp;#x435;&amp;#x43B; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x438;&amp;#x437;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; - &amp;#x432; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;, &amp;#x43E;&amp;#x43D; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x43C;&amp;#x43E;&amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E;&amp;#x439; &amp;#x438; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43C;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;newtype&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; link html a &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; ((a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; link) &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; html)&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Functor&lt;/span&gt; (&lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; link html) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; fmap f (&lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; s) &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;linkMaker &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; s &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; linkMaker &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; f&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41A;&amp;#x440;&amp;#x43E;&amp;#x43C;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E;, &amp;#x43E;&amp;#x43D; &amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x410;&amp;#x414;&amp;#x414;&amp;#x418;&amp;#x422;&amp;#x418;&amp;#x412;&amp;#x41D;&amp;#x42B;&amp;#x41C; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x43C; - &amp;#x438; &amp;#x44F; &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x430; &amp;#x43E;&amp;#x444;&amp;#x438;&amp;#x433;&amp;#x435;&amp;#x43B;, &amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x430;&amp;#x440;&amp;#x443;&amp;#x436;&amp;#x438;&amp;#x432;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x430;&amp;#x440;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x431;&amp;#x438;&amp;#x431;&amp;#x43B;&amp;#x438;&amp;#x43E;&amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x430; &amp;#x43D;&amp;#x435;&amp;#x442;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;class&lt;/span&gt; &lt;span style="color: #218a21"&gt;Functor&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; azero &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; f a&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; aplus &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; f a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; f a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; f a&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Monoid&lt;/span&gt; html &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; (&lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; link html) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; azero &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; const mempty&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; s1 &lt;span style="color: #b8850a"&gt;`aplus`&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; s2 &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;linkMaker &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; s1 linkMaker &lt;span style="color: #b8850a"&gt;`mappend`&lt;/span&gt; s2 linkMaker&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x421;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x442;&amp;#x438;&amp;#x43F; Signal &amp;#x432;&amp;#x43E;&amp;#x441;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x438;&amp;#x437; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E;, &amp;#x430; &amp;#x435;&amp;#x433;&amp;#x43E; instance Monad - &amp;#x438;&amp;#x437; instance Additive &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;data&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; f a &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; a (f a)&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Monad&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; f) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; return x &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; x azero&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; x fx &lt;span style="color: #b8850a"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; h &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; y fy &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; h x &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; y &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; fmap (&lt;span style="color: #b8850a"&gt;\&lt;/span&gt;x &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalMonad&lt;/span&gt; y &lt;span style="color: #7f007f"&gt;_&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; h x &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; y) fx &lt;span style="color: #b8850a"&gt;`aplus`&lt;/span&gt; fy&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x442;&amp;#x438;&amp;#x43F; Signal &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x441;&amp;#x44F; SignalMonad (Signal). &amp;#x41F;&amp;#x43E;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x438;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x43F;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x440;&amp;#x435;&amp;#x444;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x433;.&lt;/p&gt;&lt;p&gt;&amp;#x41E;&amp;#x434;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;, &amp;#x43D;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43D; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x442;&amp;#x438;&amp;#x43F; Signal. &amp;#x41D;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x435;&amp;#x43D; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x442;, &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x439; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x445;&amp;#x43E;&amp;#x434;, &amp;#x43D;&amp;#x43E; &amp;#x438; &amp;#x432;&amp;#x445;&amp;#x43E;&amp;#x434;, &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x447;&amp;#x451;&amp;#x43C; (!) &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x430; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x437;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x441;&amp;#x435;&amp;#x442;&amp;#x44C; &amp;#x43E;&amp;#x442; &amp;#x432;&amp;#x44B;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x430;. &amp;#x418;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x438;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x437;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x44B;&amp;#x43C; &amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x434;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; instance ArrowLoop.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x435;&amp;#x43C;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;data&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; f input output &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; input &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; output, effect &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; (output &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; input) &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; f output}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41E;&amp;#x442; Kleisli(SignalMonad Signal) &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E; input &amp;#x432; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x43C; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x438;&amp;#x442; (output -&amp;gt; input). &amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x438; &amp;#x437;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C;.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x430;&amp;#x43B;&amp;#x435;&amp;#x435; - &amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x430;&amp;#x440;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x44B;. &amp;#x41E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43D;&amp;#x430;&amp;#x44F; &amp;#x438;&amp;#x434;&amp;#x435;&amp;#x44F; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x43E;&amp;#x437;&amp;#x438;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x445; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x43E;&amp;#x43A; - &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43C;&amp;#x44B; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x43C;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x441;&amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x430;&amp;#x43B; &amp;#x438;&amp;#x437; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x430; &amp;#x432; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E;, &amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x43C; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x443;&amp;#x442;&amp;#x44C; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x438;&amp;#x437; &amp;#x421;&amp;#x415;&amp;#x420;&amp;#x415;&amp;#x414;&amp;#x418;&amp;#x41D;&amp;#x42B; &amp;#x432; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E;, &amp;#x442;&amp;#x43E; &amp;#x43C;&amp;#x44B; &amp;#x441;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x446;, &amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x432; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E; &amp;#x438;&amp;#x437;&amp;#x432;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x43C; &amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x43C;. &amp;#x410;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x43E;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x443;&amp;#x442;&amp;#x44C; &amp;#x441;&amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x430;&amp;#x43B; &amp;#x438;&amp;#x437; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x430; &amp;#x432; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x443; - &amp;#x43C;&amp;#x44B; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x432;&amp;#x440;&amp;#x430;&amp;#x449;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x432; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x43E;, &amp;#x430; &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43C; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x432; &amp;#x441;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x443;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;C.Category&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; f) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; id &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; arr id&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; sl2 &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; sl1 &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; pure sl2 &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; pure sl1, effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; e}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; e reaction &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; fmap (pure sl2) (effect sl1 &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; reaction &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; pure sl2) &lt;span style="color: #b8850a"&gt;`aplus`&lt;/span&gt; effect sl2 (pure sl1 &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; reaction)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x424;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x44F; first &amp;#x442;&amp;#x440;&amp;#x435;&amp;#x431;&amp;#x443;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x434;&amp;#x43E;&amp;#x43F;&amp;#x438;&amp;#x43D;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x430;&amp;#x43C;&amp;#x438;, &amp;#x43D;&amp;#x43E;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43C; &amp;#x443;&amp;#x434;&amp;#x430;&amp;#x451;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x443;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x439;&amp;#x43F;&amp;#x447;&amp;#x435;&amp;#x43A;&amp;#x435;&amp;#x440; - &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Arrow&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; f) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; arr f &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; f, effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; const azero}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; first sl &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; first (pure sl), effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; e}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; e reaction &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; findZ output &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; (input, z) &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; reaction (output, z) &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; (output, z)&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; fmap findZ &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; effect sl &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; fst &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; reaction &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; findZ&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x43E;&amp;#x431;&amp;#x435;&amp;#x449;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; ArrowLoop. &amp;#x41C;&amp;#x44B; &amp;#x441;&amp;#x43F;&amp;#x435;&amp;#x446;&amp;#x438;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; - &amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x443;&amp;#x434;&amp;#x438;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x43D; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F;, &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x447;&amp;#x451;&amp;#x43C; &amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x43E;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;ArrowLoop&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; f) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; loop sl &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;input &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; (output, z) &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; pure sl (input, z) &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; output, effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; e}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; e reaction &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; fmap fst &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; effect sl &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; first reaction&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41D;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x446;, &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x43E;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x430;&amp;#x432;&amp;#x43D;&amp;#x43E;&amp;#x435;. ArrowChoice.&lt;/p&gt;&lt;p&gt;&amp;#x424;&amp;#x438;&amp;#x448;&amp;#x43A;&amp;#x430; &amp;#x432; &amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; ArrowChoice &amp;#x434;&amp;#x430;&amp;#x451;&amp;#x442; &amp;#x43D;&amp;#x430;&amp;#x43C; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C;, &amp;#x432; &amp;#x437;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x441;&amp;#x438;&amp;#x43C;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438; &amp;#x43E;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x44F;&amp;#x449;&amp;#x438;&amp;#x445; &amp;#x441;&amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x432;, &amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x434;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x438; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x430;. &amp;#x41F;&amp;#x440;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43C;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x438;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x441;&amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x430;&amp;#x43B;, &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x439;&amp;#x434;&amp;#x44F; &amp;#x447;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x437; &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x438; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x443;&amp;#x432;&amp;#x448;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x434; &amp;#x43F;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x443;-&amp;#x442;&amp;#x43E; &amp;#x446;&amp;#x438;&amp;#x43A;&amp;#x43B;&amp;#x443;, &amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F;&amp;#x43B; &amp;#x432;&amp;#x44B;&amp;#x431;&amp;#x43E;&amp;#x440; &amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x438;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x44F; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x430; &amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x434;&amp;#x435;&amp;#x440;&amp;#x438;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;. &amp;#x421;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x430; &amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x436;&amp;#x430;&amp;#x435;&amp;#x43C;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x43A;&amp;#x430; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x441;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43C;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x443; &amp;#x437;&amp;#x430;&amp;#x433;&amp;#x440;&amp;#x443;&amp;#x437;&amp;#x43A;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x44B;, &amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x432;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x44F;. &amp;#x413;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x43C;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43C; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;. &amp;#x41F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x44F; &amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x43E;&amp;#x43F;&amp;#x443;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x44E; &amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x432;&amp;#x44B;&amp;#x447;&amp;#x438;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x443;&amp;#x43F;&amp;#x430;&amp;#x434;&amp;#x451;&amp;#x442; &amp;#x441; &amp;#x43E;&amp;#x448;&amp;#x438;&amp;#x431;&amp;#x43A;&amp;#x43E;&amp;#x439;. &amp;#x41E;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x442;&amp;#x44C; - &amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;instance&lt;/span&gt; &lt;span style="color: #218a21"&gt;Additive&lt;/span&gt; f &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;ArrowChoice&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; f) &lt;span style="color: #7f007f"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; left sl &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; left &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; pure sl, effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; e}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; e reaction &lt;span style="color: #b8850a"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;case&lt;/span&gt; fix &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; reaction &lt;span style="color: #b8850a"&gt;.&lt;/span&gt; left (pure sl) &lt;span style="color: #7f007f"&gt;of&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #218a21"&gt;Left&lt;/span&gt; &lt;span style="color: #7f007f"&gt;_&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; fmap &lt;span style="color: #218a21"&gt;Left&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; effect sl &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;output &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; &lt;span style="color: #218a21"&gt;Left&lt;/span&gt; input &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; reaction &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #218a21"&gt;Left&lt;/span&gt; output &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; input&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #218a21"&gt;Right&lt;/span&gt; &lt;span style="color: #7f007f"&gt;_&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; azero&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x421;&amp;#x43E;&amp;#x431;&amp;#x438;&amp;#x440;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435;, &amp;#x43D;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x44B;&amp;#x432;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43E;&amp;#x431;&amp;#x44B;&amp;#x447;&amp;#x43D;&amp;#x43E;, &amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x441;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x43D;&amp;#x438;&amp;#x435;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;type&lt;/span&gt; &lt;span style="color: #218a21"&gt;Link&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;type&lt;/span&gt; &lt;span style="color: #218a21"&gt;Html&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;type&lt;/span&gt; &lt;span style="color: #218a21"&gt;Widget&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;NetState&lt;/span&gt; (&lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; (&lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #218a21"&gt;Link&lt;/span&gt; &lt;span style="color: #218a21"&gt;Html&lt;/span&gt;))&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41D;&amp;#x430; &amp;#x432;&amp;#x445;&amp;#x43E;&amp;#x434; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x439; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x44B; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x430;&amp;#x451;&amp;#x442;&amp;#x441;&amp;#x44F; (), &amp;#x430; &amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x438;&amp;#x437; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x448;&amp;#x435;&amp;#x434;&amp;#x448;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43E;&amp;#x442; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44F; URL. &amp;#x412;&amp;#x44B;&amp;#x445;&amp;#x43E;&amp;#x434; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x44B; &amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; - &amp;#x43F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443;, &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x438;, &amp;#x444;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;, &amp;#x43D;&amp;#x435; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; - &amp;#x442;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x435;&amp;#x435;, &amp;#x432;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x43E;&amp;#x439;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;renderPage&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;Widget&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt; output &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Maybe&lt;/span&gt; &lt;span style="color: #218a21"&gt;Link&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Html&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;renderPage&lt;/span&gt; (&lt;span style="color: #218a21"&gt;NetState&lt;/span&gt; sl) ml &lt;span style="color: #b8850a"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; render &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; effect sl &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; const (&lt;span style="color: #218a21"&gt;()&lt;/span&gt;, maybe point readSer ml)&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; render &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;(&lt;span style="color: #7f007f"&gt;_&lt;/span&gt;, local) &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; writeSer local&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x43D;&amp;#x44B; label, link &amp;#x438; state - &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x442;&amp;#x438; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x436;&amp;#x435;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x43B;&amp;#x43E;&amp;#x43C; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x43D;&amp;#x433;&amp;#x435;.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x43B;&amp;#x44F; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x430; - label. &amp;#x412;&amp;#x44B;&amp;#x445;&amp;#x43E;&amp;#x434; label - &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x433;&amp;#x434;&amp;#x430; (), &amp;#x43F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x430;&amp;#x44F; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x44C; &amp;#x43D;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x43C;, &amp;#x43A;&amp;#x440;&amp;#x43E;&amp;#x43C;&amp;#x435; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x44B;; &amp;#x43D;&amp;#x430;&amp;#x441; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;, &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;, &amp;#x435;&amp;#x451; &amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;label&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;Widget&lt;/span&gt; &lt;span style="color: #218a21"&gt;String&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;label&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;NetState&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; const (&lt;span style="color: #218a21"&gt;()&lt;/span&gt;,&lt;span style="color: #218a21"&gt;()&lt;/span&gt;), effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;reaction &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; const &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; fst (reaction (&lt;span style="color: #218a21"&gt;()&lt;/span&gt;,&lt;span style="color: #218a21"&gt;()&lt;/span&gt;)) &lt;span style="color: #b8850a"&gt;++&lt;/span&gt; &lt;span style="color: #bb8f8f"&gt;"\n"&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x412;&amp;#x445;&amp;#x43E;&amp;#x434; link - &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x433;&amp;#x434;&amp;#x430; (), &amp;#x43F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x430;&amp;#x44F; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x44C; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; const (). &amp;#x41F;&amp;#x43E;&amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443;, &amp;#x43C;&amp;#x44B; &amp;#x435;&amp;#x451; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x433;&amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x435;&amp;#x43C;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;link&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;String&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Widget&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt; &lt;span style="color: #218a21"&gt;Bool&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;link&lt;/span&gt; caption &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;NetState&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; const (&lt;span style="color: #218a21"&gt;False&lt;/span&gt;, &lt;span style="color: #218a21"&gt;()&lt;/span&gt;), effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; const &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #218a21"&gt;Signal&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #b8850a"&gt;\&lt;/span&gt;linkMaker &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; caption &lt;span style="color: #b8850a"&gt;++&lt;/span&gt; &lt;span style="color: #bb8f8f"&gt;" &amp;lt;"&lt;/span&gt; &lt;span style="color: #b8850a"&gt;++&lt;/span&gt; linkMaker (&lt;span style="color: #218a21"&gt;True&lt;/span&gt;, &lt;span style="color: #218a21"&gt;()&lt;/span&gt;) &lt;span style="color: #b8850a"&gt;++&lt;/span&gt; &lt;span style="color: #bb8f8f"&gt;"&amp;gt;\n"&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41D;&amp;#x443; &amp;#x438;, &amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x446;, state. State &amp;#x43D;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x436;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;, &amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x44C;&amp;#x44E;.&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;state&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;Serialize&lt;/span&gt; local &lt;span style="color: #b8850a"&gt;=&amp;gt;&lt;/span&gt; local &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;Widget&lt;/span&gt; (local &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; local) local&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;state&lt;/span&gt; initial &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;NetState&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; &lt;span style="color: #218a21"&gt;SignalArrow&lt;/span&gt; {pure &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; p, effect &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; const azero}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;where&lt;/span&gt; p (f, ml) &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #7f007f"&gt;let&lt;/span&gt; l &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; fromMaybe initial ml &lt;span style="color: #7f007f"&gt;in&lt;/span&gt; (l, &lt;span style="color: #218a21"&gt;Just&lt;/span&gt; &lt;span style="color: #b8850a"&gt;$&lt;/span&gt; f l)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x413;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x432;&amp;#x43E;. &amp;#x41F;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x431;&amp;#x443;&amp;#x435;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x443;&amp;#x431;&amp;#x435;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x44B; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x43B;&amp;#x436;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x44C;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;test1&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; proc &lt;span style="color: #218a21"&gt;()&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;do&lt;/span&gt; clicked &lt;span style="color: #b8850a"&gt;&amp;lt;-&lt;/span&gt; link &lt;span style="color: #bb8f8f"&gt;"+"&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; number &lt;span style="color: #b8850a"&gt;&amp;lt;-&lt;/span&gt; state (0 &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;Integer&lt;/span&gt;) &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;if&lt;/span&gt; clicked &lt;span style="color: #7f007f"&gt;then&lt;/span&gt; (&lt;span style="color: #b8850a"&gt;+&lt;/span&gt; 1) &lt;span style="color: #7f007f"&gt;else&lt;/span&gt; id&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; label &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; show number&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; link &lt;span style="color: #bb8f8f"&gt;"refresh"&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x417;&amp;#x430;&amp;#x433;&amp;#x440;&amp;#x443;&amp;#x436;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x432; GHCi:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #000080"&gt;*Loop&amp;gt; &lt;/span&gt;&lt;strong&gt;putStr $ renderPage test1 $ Nothing&lt;/strong&gt;&lt;br /&gt;+ &amp;lt;Y1,&amp;gt;&lt;br /&gt;0&lt;br /&gt;refresh &amp;lt;Y0,&amp;gt;&lt;br /&gt;&lt;span style="color: #000080"&gt;*Loop&amp;gt; &lt;/span&gt;&lt;strong&gt;putStr $ renderPage test1 $ Just "Y1,"&lt;/strong&gt;&lt;br /&gt;+ &amp;lt;Y2,&amp;gt;&lt;br /&gt;1&lt;br /&gt;refresh &amp;lt;Y1,&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x443;&amp;#x431;&amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43C;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x435; &amp;#x444;&amp;#x43E;&amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x44B; &amp;#x442;&amp;#x43E;&amp;#x436;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x442;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;test5&lt;/span&gt; &lt;span style="color: #b8850a"&gt;=&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; proc &lt;span style="color: #218a21"&gt;()&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; &lt;span style="color: #7f007f"&gt;do&lt;/span&gt; rec {label &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; show number;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; number &lt;span style="color: #b8850a"&gt;&amp;lt;-&lt;/span&gt; state (0 &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; &lt;span style="color: #218a21"&gt;Integer&lt;/span&gt;) &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #7f007f"&gt;if&lt;/span&gt; clicked &lt;span style="color: #7f007f"&gt;then&lt;/span&gt; (&lt;span style="color: #b8850a"&gt;+&lt;/span&gt; 1) &lt;span style="color: #7f007f"&gt;else&lt;/span&gt; id;&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; clicked &lt;span style="color: #b8850a"&gt;&amp;lt;-&lt;/span&gt; link &lt;span style="color: #bb8f8f"&gt;"+1"&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt;}&lt;br /&gt;&lt;span style="color: #b8850a"&gt;&amp;gt;&lt;/span&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; link &lt;span style="color: #bb8f8f"&gt;"refresh"&lt;/span&gt; &lt;span style="color: #b8850a"&gt;-&amp;lt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x412; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x435; &amp;#x432;&amp;#x441;&amp;#x451; &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x442;&amp;#x438; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x436;&amp;#x435;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x438; &amp;#x432; test1 - &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x441;&amp;#x441;&amp;#x44B;&amp;#x43B;&amp;#x43A;&amp;#x430;, &amp;#x438;&amp;#x437;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F;&amp;#x44E;&amp;#x449;&amp;#x430;&amp;#x44F; &amp;#x441;&amp;#x447;&amp;#x451;&amp;#x442;&amp;#x447;&amp;#x438;&amp;#x43A;, &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x430; &amp;#x41F;&amp;#x41E;&amp;#x421;&amp;#x41B;&amp;#x415; &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x447;&amp;#x451;&amp;#x442;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;. &amp;#x42D;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x43E; &amp;#x43D;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x43E;&amp;#x439; &amp;#x440;&amp;#x435;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x437;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x435;&amp;#x439;, &amp;#x437;&amp;#x430;&amp;#x442;&amp;#x43E; &amp;#x441; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x439;:&lt;br /&gt;&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #000080"&gt;*Loop&amp;gt; &lt;/span&gt;&lt;strong&gt;putStr $ renderPage test5 $ Nothing&lt;/strong&gt;&lt;br /&gt;0&lt;br /&gt;+1 &amp;lt;Y1,&amp;gt;&lt;br /&gt;refresh &amp;lt;Y0,&amp;gt;&lt;br /&gt;&lt;span style="color: #000080"&gt;*Loop&amp;gt; &lt;/span&gt;&lt;strong&gt;putStr $ renderPage test5 $ Just "Y1,"&lt;/strong&gt;&lt;br /&gt;1&lt;br /&gt;+1 &amp;lt;Y2,&amp;gt;&lt;br /&gt;refresh &amp;lt;Y1,&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x420;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;, &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;. &amp;#x427;&amp;#x443;&amp;#x432;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x44E;, &amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x430; &amp;#x438;&amp;#x437; &amp;#x438;&amp;#x433;&amp;#x440;&amp;#x443;&amp;#x448;&amp;#x435;&amp;#x447;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x444;&amp;#x440;&amp;#x435;&amp;#x439;&amp;#x43C;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x43A;&amp;#x430; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x44B;&amp;#x439;.&lt;/p&gt;&lt;p&gt;&amp;#x41F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43D;&amp;#x435;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;: &amp;#x432;&amp;#x438;&amp;#x434;&amp;#x436;&amp;#x435;&amp;#x442;-&amp;#x445;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x43E;&amp;#x43D;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x443;&amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x432; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x43B;&amp;#x44B;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x437;, &amp;#x43F;&amp;#x43E;-&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x436;&amp;#x43D;&amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;. &amp;#x418; &amp;#x44F; &amp;#x43D;&amp;#x435; &amp;#x443;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43D;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x443;&amp;#x434;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x435;-&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x43C;&amp;#x43D;&amp;#x44B;&amp;#x43C; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x43C;. &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1-3.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:28179</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/28179.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=28179"/>
    <title>On Vox: Офигительно</title>
    <published>2009-04-14T18:26:48Z</published>
    <updated>2009-04-14T18:32:20Z</updated>
    <content type="html">&lt;p&gt;Довольно банальная завязка - американка, вышедшая замуж за англичанина,
приезжает в его дом и знакомится с его семьёй, явно её не одобряющей -
превратилась в классно сыгранный, классно поставленный фильм с классным
саундтреком. Рекомендую - Easy Virtue, или &amp;quot;Лёгкое поведение&amp;quot;. Кстати,
в переводе, вроде бы, идёт в наших кинотеатрах прямо сейчас.&lt;br /&gt;
&lt;div at:enclosure="asset" at:xid="6a00e398c5c26f0005011015f9f72e860b" at:format="extra-large" at:align="center" class="enclosure enclosure-center enclosure-extra-large video-enclosure" style="text-align: center;"&gt;
&lt;div class="enclosure-inner" style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"&gt;
    &lt;div class="enclosure-list"&gt;
        &lt;div class="enclosure-item video-asset last"&gt;
    
            &lt;div class="enclosure-image"&gt;
        
&lt;lj-embed id="4" /&gt;        
            &lt;/div&gt;
            &lt;div class="enclosure-meta"&gt;
                &lt;div class="enclosure-asset-name"&gt;&lt;a href="http://migmit.vox.com/library/video/6a00e398c5c26f0005011015f9f72e860b.html" title="EV"&gt;EV&lt;/a&gt;&lt;/div&gt;
            &lt;/div&gt;
    
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;br /&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;


&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BE%D1%84%D0%B8%D0%B3%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:27708</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/27708.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=27708"/>
    <title>On Vox: Игрушечный веб - 2</title>
    <published>2009-04-06T22:46:05Z</published>
    <updated>2009-04-06T22:59:10Z</updated>
    <content type="html">Продолжение; начало &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1---1.html"&gt;здесь&lt;/a&gt;
&lt;br /&gt;
Теперь - основное: собственно, виджеты.
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#b12121"&gt;{-&lt;/font&gt;&lt;font color="#b12121"&gt;# LANGUAGE Arrows #-}&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;module&lt;/font&gt; &lt;font color="#218a21"&gt;HTML&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Control.Arrow&lt;/font&gt;
&lt;/pre&gt;
Этот модуль реально подключается только ради стрелок Клейсли (как мы помним, каждая монада даёт стрелку - вот, это они и есть).
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Data.Maybe&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Data.Monoid&lt;/font&gt;
&lt;/pre&gt;
Ну, куда же без моноидов...
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt;
&lt;/pre&gt;
Три предыдущих модуля. Пригодится.
&lt;br /&gt;
Для начала мы соорудим монаду, как первое приближение к виджетам. Наш "недовиджет" будет посылать некоторый сигнал; кроме того, он будет содержать произвольное количество ссылок. Клик по каждой ссылке меняет состояния, потенциально, всех остальных виджетов на странице. Но как именно он их меняет? Только при помощи изменения выходного сигнала данного виджета - это единственный способ для нашего виджета повлиять на других. Поэтому, каждая ссылка а) определяет новый выходной сигнал, и б) содержит новые состояния всех виджетов на странице, причём б) определяется по а). Вот эту самую функцию, определяющую б) (а точнее, сразу URL, который надо запихнуть в ссылку) по а), мы передадим "недовиджету" как параметр:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;data&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; link html a &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; a ((a &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; link) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; html)
&lt;/pre&gt;
Теперь надо превратить это дело в монаду. Виджет "return" не будет отображаться вообще, он будет лишь выдавать сигнал на выход; для отображения связки двух виджетов мы сначала отображаем один из них, затем второй:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Monoid&lt;/font&gt; html &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Monad&lt;/font&gt; (&lt;font color="#218a21"&gt;Signal&lt;/font&gt; link html) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     return x &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; x &lt;font color="#b8850a"&gt;$&lt;/font&gt; const mempty
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     &lt;font color="#218a21"&gt;Signal&lt;/font&gt; x render1 &lt;font color="#b8850a"&gt;&amp;gt;&amp;gt;=&lt;/font&gt; f &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;let&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; y render2 &lt;font color="#b8850a"&gt;=&lt;/font&gt; f x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;             render linkMaker &lt;font color="#b8850a"&gt;=&lt;/font&gt; render1 (&lt;font color="#b8850a"&gt;\&lt;/font&gt;x &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; y &lt;font color="#7f007f"&gt;_&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; f x &lt;font color="#7f007f"&gt;in&lt;/font&gt; linkMaker y) &lt;font color="#b8850a"&gt;`mappend`&lt;/font&gt; render2 linkMaker
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;in&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; y render
&lt;/pre&gt;
Наши URL-ы будут просто строками; выходной HTML - тоже всего лишь строкой:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;type&lt;/font&gt; &lt;font color="#218a21"&gt;Html&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;type&lt;/font&gt; &lt;font color="#218a21"&gt;Link&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt;
&lt;/pre&gt;
Теперь мы хотим добавить к нашим виджетам состояние. У нас уже есть способ это сделать, но он работает со стрелками, а не с монадами. Вот тут и нужны стрелки Клейсли:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;type&lt;/font&gt; &lt;font color="#218a21"&gt;Widget&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; (&lt;font color="#218a21"&gt;Kleisli&lt;/font&gt; (&lt;font color="#218a21"&gt;Signal&lt;/font&gt; &lt;font color="#218a21"&gt;Link&lt;/font&gt; &lt;font color="#218a21"&gt;Html&lt;/font&gt;))
&lt;/pre&gt;
Сразу соорудим функцию для показа наших виджетов (а вся страница, разумеется, есть один большой виджет). Нам нужно а) десериализовать состояние из пришедшего URL-а; б) передать на вход виджета... ничего не передавать, поэтому входной тип должен быть (), в) при порождении каждой ссылки из глобального состояния страницы просто сериализовать это самое глобальное состояние. Делаем:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;renderPage&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Widget&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt; output &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Maybe&lt;/font&gt; &lt;font color="#218a21"&gt;Link&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Html&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;renderPage&lt;/font&gt; (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; (&lt;font color="#218a21"&gt;Kleisli&lt;/font&gt; widget)) ml &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     &lt;font color="#7f007f"&gt;let&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; &lt;font color="#7f007f"&gt;_&lt;/font&gt; render &lt;font color="#b8850a"&gt;=&lt;/font&gt; widget (&lt;font color="#218a21"&gt;()&lt;/font&gt;, maybe point readSer ml)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     &lt;font color="#7f007f"&gt;in&lt;/font&gt; render &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;(&lt;font color="#7f007f"&gt;_&lt;/font&gt;, local) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; writeSer local
&lt;/pre&gt;
Теперь нам нужны три базовых "кирпичика": виджет, отображающий текст, виджет, отображающий ссылку, и виджет, хранящий некое состояние. Пишутся они достаточно элементарно, единственная тонкость: выходной сигнал виджета-ссылки - это Bool: либо по ссылке кликнули, либо нет.
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;label&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Widget&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;label&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#218a21"&gt;Kleisli&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;(text, &lt;font color="#7f007f"&gt;_&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; (&lt;font color="#218a21"&gt;()&lt;/font&gt;,&lt;font color="#218a21"&gt;()&lt;/font&gt;) &lt;font color="#b8850a"&gt;$&lt;/font&gt; const &lt;font color="#b8850a"&gt;$&lt;/font&gt; text &lt;font color="#b8850a"&gt;++&lt;/font&gt; &lt;font color="#bb8f8f"&gt;"\n"&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;link&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Widget&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#218a21"&gt;Bool&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;link&lt;/font&gt; caption &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#218a21"&gt;Kleisli&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; const &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; (&lt;font color="#218a21"&gt;False&lt;/font&gt;, &lt;font color="#218a21"&gt;()&lt;/font&gt;) &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;linkMaker &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; caption &lt;font color="#b8850a"&gt;++&lt;/font&gt; &lt;font color="#bb8f8f"&gt;" &amp;lt;"&lt;/font&gt; &lt;font color="#b8850a"&gt;++&lt;/font&gt; linkMaker (&lt;font color="#218a21"&gt;True&lt;/font&gt;, &lt;font color="#218a21"&gt;()&lt;/font&gt;) &lt;font color="#b8850a"&gt;++&lt;/font&gt; &lt;font color="#bb8f8f"&gt;"&amp;gt;\n"&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;state&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; (&lt;font color="#218a21"&gt;Serialize&lt;/font&gt; local) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; local &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Widget&lt;/font&gt; (local &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; local) local
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;state&lt;/font&gt; initial &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#218a21"&gt;Kleisli&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;(f, mx) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; x &lt;font color="#b8850a"&gt;=&lt;/font&gt; fromMaybe initial mx &lt;font color="#7f007f"&gt;in&lt;/font&gt; &lt;font color="#218a21"&gt;Signal&lt;/font&gt; (x, &lt;font color="#218a21"&gt;Just&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; f x) &lt;font color="#b8850a"&gt;$&lt;/font&gt; const &lt;font color="#bb8f8f"&gt;""&lt;/font&gt;
&lt;/pre&gt;
Готово. Теперь можно обозвать это умным словом "фреймворк". Нет, правда, готово.
&lt;br /&gt;
Проверим. Первый тест - страница, содержащая две ссылки и поле, отображающее число. Нажатие на первую ссылку увеличивает число на 1; нажатие на вторую - рефрешит страницу:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;test1&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     proc &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;do&lt;/font&gt; clicked &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; link &lt;font color="#bb8f8f"&gt;"+"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            number &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; state (0 &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Integer&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#7f007f"&gt;if&lt;/font&gt; clicked &lt;font color="#7f007f"&gt;then&lt;/font&gt; (&lt;font color="#b8850a"&gt;+&lt;/font&gt; 1) &lt;font color="#7f007f"&gt;else&lt;/font&gt; id
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            label &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; show number
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            link &lt;font color="#bb8f8f"&gt;"refresh"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;/pre&gt;
Проверяем в GHCi:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test1 $ Nothing&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y1,&amp;gt;&lt;/code&gt;
0
refresh &lt;code&gt;&amp;lt;Y0,&amp;gt;&lt;/code&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test1 $ Just "Y1,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y2,&amp;gt;&lt;/code&gt;
1
refresh &lt;code&gt;&amp;lt;Y1,&amp;gt;&lt;/code&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test1 $ Just "Y2,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y3,&amp;gt;&lt;/code&gt;
2
refresh &lt;code&gt;&amp;lt;Y2,&amp;gt;&lt;/code&gt;
&lt;/pre&gt;
В первый раз мы подаём на вход Nothing; затем мы каждый раз подаём на вход URL из той ссылки, по которой мы, вроде как, кликнули.
&lt;br /&gt;
Второй тест - снова две ссылки и число, но на сей раз вторая ссылка уменьшает число на 1:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;test2&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     proc &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;do&lt;/font&gt; increase &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; link &lt;font color="#bb8f8f"&gt;"+"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            decrease &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; link &lt;font color="#bb8f8f"&gt;"-"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            number &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; state (0 &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Integer&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#b8850a"&gt;\&lt;/font&gt;n &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; n &lt;font color="#b8850a"&gt;+&lt;/font&gt; (&lt;font color="#7f007f"&gt;if&lt;/font&gt; increase &lt;font color="#7f007f"&gt;then&lt;/font&gt; 1 &lt;font color="#7f007f"&gt;else&lt;/font&gt; 0) &lt;font color="#b8850a"&gt;-&lt;/font&gt; (&lt;font color="#7f007f"&gt;if&lt;/font&gt; decrease &lt;font color="#7f007f"&gt;then&lt;/font&gt; 1 &lt;font color="#7f007f"&gt;else&lt;/font&gt; 0)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            label &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; show number
&lt;/pre&gt;
Проверяем:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test2 $ Nothing&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y-1,&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test2 $ Just "Y-1,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y0,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y-2,&amp;gt;&lt;/code&gt;
-1
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test2 $ Just "Y-2,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y-1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y-3,&amp;gt;&lt;/code&gt;
-2
&lt;/pre&gt;
Работает.
&lt;br /&gt;
Третий пример: размещаем на странице ДВА виджета из первого примера. По идее, они должны работать независимо:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;test3&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     proc &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;do&lt;/font&gt; test2 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            test2 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;/pre&gt;
И тестируем:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test3 $ Nothing&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y1,Y0,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y-1,Y0,&amp;gt;&lt;/code&gt;
0
+ &lt;code&gt;&amp;lt;Y0,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y0,Y-1,&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test3 $ Just "Y1,Y0,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y2,Y0,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y0,Y0,&amp;gt;&lt;/code&gt;
1
+ &lt;code&gt;&amp;lt;Y1,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y1,Y-1,&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test3 $ Just "Y2,Y0,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y3,Y0,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y1,Y0,&amp;gt;&lt;/code&gt;
2
+ &lt;code&gt;&amp;lt;Y2,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y2,Y-1,&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test3 $ Just "Y2,Y1,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y3,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y1,Y1,&amp;gt;&lt;/code&gt;
2
+ &lt;code&gt;&amp;lt;Y2,Y2,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y2,Y0,&amp;gt;&lt;/code&gt;
1
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test3 $ Just "Y1,Y1,"&lt;/b&gt;
+ &lt;code&gt;&amp;lt;Y2,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y0,Y1,&amp;gt;&lt;/code&gt;
1
+ &lt;code&gt;&amp;lt;Y1,Y2,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;Y1,Y0,&amp;gt;&lt;/code&gt;
1
&lt;/pre&gt;
И опять работает.
&lt;br /&gt;
Четвёртый пример: своего рода "визард" с двумя страницами, с кнопкой для переключения. На каждой странице мы разместим виджет из второго примера:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;test4&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     proc &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;do&lt;/font&gt; switch &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; link &lt;font color="#bb8f8f"&gt;"switch"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            displayFirst &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; state &lt;font color="#218a21"&gt;True&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#7f007f"&gt;if&lt;/font&gt; switch &lt;font color="#7f007f"&gt;then&lt;/font&gt; not &lt;font color="#7f007f"&gt;else&lt;/font&gt; id
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            &lt;font color="#7f007f"&gt;if&lt;/font&gt; displayFirst
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;               &lt;font color="#7f007f"&gt;then&lt;/font&gt; &lt;font color="#7f007f"&gt;do&lt;/font&gt; label &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#bb8f8f"&gt;"first page"&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       test2 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;               &lt;font color="#7f007f"&gt;else&lt;/font&gt; &lt;font color="#7f007f"&gt;do&lt;/font&gt; label &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#bb8f8f"&gt;"second page"&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       test2 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;/pre&gt;
GHCi-сессия:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test4 $ Nothing&lt;/b&gt;
switch &lt;code&gt;&amp;lt;YnY0,N&amp;gt;&lt;/code&gt;
first page
+ &lt;code&gt;&amp;lt;YyY1,N&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;YyY-1,N&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test4 $ Just "YyY1,N"&lt;/b&gt;
switch &lt;code&gt;&amp;lt;YnY1,N&amp;gt;&lt;/code&gt;
first page
+ &lt;code&gt;&amp;lt;YyY2,N&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;YyY0,N&amp;gt;&lt;/code&gt;
1
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test4 $ Just "YnY1,N"&lt;/b&gt;
switch &lt;code&gt;&amp;lt;YyY1,Y0,&amp;gt;&lt;/code&gt;
second page
+ &lt;code&gt;&amp;lt;YnY1,Y1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;YnY1,Y-1,&amp;gt;&lt;/code&gt;
0
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test4 $ Just "YnY1,Y-1,"&lt;/b&gt;
switch &lt;code&gt;&amp;lt;YyY1,Y-1,&amp;gt;&lt;/code&gt;
second page
+ &lt;code&gt;&amp;lt;YnY1,Y0,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;YnY1,Y-2,&amp;gt;&lt;/code&gt;
-1
&lt;font color="#000080"&gt;*HTML&amp;gt; &lt;/font&gt;&lt;b&gt;putStr $ renderPage test4 $ Just "YyY1,Y-1,"&lt;/b&gt;
switch &lt;code&gt;&amp;lt;YnY1,Y-1,&amp;gt;&lt;/code&gt;
first page
+ &lt;code&gt;&amp;lt;YyY2,Y-1,&amp;gt;&lt;/code&gt;
- &lt;code&gt;&amp;lt;YyY0,Y-1,&amp;gt;&lt;/code&gt;
1
&lt;/pre&gt;
Чего здесь не хватает?
&lt;br /&gt;
Во-первых, каждый виджет может влиять лишь на те виджеты, которые идут после него. Для влияния "назад" нам понадобился бы instance ArrowLoop Widget - который мы автоматически получили бы, если бы сообразили instance MonadFix Signal. Тогда можно было бы написать, скажем,
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;test5&lt;/font&gt; &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     proc &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;do&lt;/font&gt; rec {label &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; show number;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                 number &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; state (0 &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Integer&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#7f007f"&gt;if&lt;/font&gt; clicked &lt;font color="#7f007f"&gt;then&lt;/font&gt; (&lt;font color="#b8850a"&gt;+&lt;/font&gt; 1) &lt;font color="#7f007f"&gt;else&lt;/font&gt; id;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                 clicked &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; link &lt;font color="#bb8f8f"&gt;"+1"&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;}
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;            returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;/pre&gt;
Увы, с текущей реализацией Signal это, похоже, невозможно.
&lt;br /&gt;
Другая фишка, которую мне лично очень хотелось бы иметь - это "виджет-хамелеон", который может получить на вход другой виджет и вести себя как он, до тех пор, пока не получит новый виджет, и станет вести себя уже как он. Подобная вещь была в фуджетах; как это счастье реализовать, я лично пока не очень представляю.
&lt;br /&gt;
На сегодня всё, спасибо за внимание.
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1---2.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:27500</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/27500.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=27500"/>
    <title>On Vox: Игрушечный веб - 1</title>
    <published>2009-04-06T22:32:32Z</published>
    <updated>2009-04-07T20:03:07Z</updated>
    <content type="html">Как-то странно получается. Я активно не люблю стрелки (имеются в виду, естественно, хаскельные Arrows), и, тем не менее, постоянно их сочиняю, как правило, применительно к вебу. На этот раз речь пойдёт о задачке, которую несколько невнятно сформулировал &lt;img src="http://l-stat.livejournal.com/img/userinfo.gif" alt="[info]" style="border: 0pt none ; vertical-align: bottom; padding-right: 1px;" height="17" width="17"&gt;&lt;a href="http://mr-aleph.livejournal.com/"&gt;&lt;b&gt;mr_aleph&lt;/b&gt;&lt;/a&gt; в своём посте &lt;a href="http://mr-aleph.livejournal.com/175420.html?style=mine"&gt;#rocket web-science&lt;/a&gt;.
&lt;br /&gt;
Речь о том, чтобы сымитировать десктопное приложение в вебе, не прибегая к помощи джаваскрипта и не храня ничего на сервере. Для простоты мы ограничимся выводом текста и кнопками - в роли которых у нас будут выступать ссылки. Задумка в том, чтобы клик по ссылке работал как нажатие кнопки, меняя состояние виджетов на странице (т.е., в основном, меняя отображаемые надписи). При этом, состояние виджетов, не имеющих отношения к этой кнопке, должно, естественно, сохраняться. Отсюда вытекает, что в каждой ссылке должно быть прописано состояние всех виджетов вообще, которые есть на странице - и в то же время мы хотим писать виджеты, содержащие ссылки, не зная заранее, что на странице будет ещё.
&lt;br /&gt;
Итак, в бой. Задача прикручивания всего этого к какому-нибудь веб-серверу (например, happstack-у) мне представляется чисто технической, а потому неинтересной. Мы будем использовать упрощённый формат: выводить по одной надписи или ссылке на строчку и вручную запускать нашу "страницу", передавая ей в качестве параметра ту "ссылку", на которой мы, вроде как, кликнули. Ссылки будем выводит так: caption &lt;code&gt;&amp;lt;URL&amp;gt;&lt;/code&gt;.
&lt;br /&gt;
Первый модуль, который я использую, появляется по одной-единственной причине: мне нужно, чтобы страница, в которую мы специально не запихивали никакое состояние (как бывает, когда страница вызывается в первый раз), всё-таки какое-то состояние имела. Я подумывал использовать в качестве состояния каждого виджета Maybe что-то-там, но решил, что проще будет использовать специальный класс. Уже потом я сообразил, что Maybe ... - это СВОБОДНЫЕ алгебры над монадой Maybe, а подобный класс - это ВСЕ алгебры над этой же монадой:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;module&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; l &lt;font color="#7f007f"&gt;where&lt;/font&gt; point &lt;font color="#b8850a"&gt;::&lt;/font&gt; l
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt; point &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; (&lt;font color="#218a21"&gt;Maybe&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt; point &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;Nothing&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Pointed&lt;/font&gt; a, &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; b) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; (a, b) &lt;font color="#7f007f"&gt;where&lt;/font&gt; point &lt;font color="#b8850a"&gt;=&lt;/font&gt; (point, point)
&lt;/pre&gt;
Тут, в общем-то, всё понятно. Кстати говоря, в языке моей мечты класс Pointed будет единственным классом вообще.
&lt;br /&gt;
Второй модуль необходим для сериализации/десериализации состояний. Собственно, никто не мешает использовать стандартную комбинацию (Show a, Read a), но при этом получаются настолько огромные выражения, что на них просто неприятно смотреть.
&lt;br /&gt;
Здесь мы используем довольно стандартный трюк, слегка напоминающий "разностные списки". То, что нам нужно - это функции a -&amp;gt; String и String -&amp;gt; a. Подобные штуки, увы, плохо комбинируются; поэтому, мы соорудим ПРЕОБРАЗОВАТЕЛИ таких функций - и вот они уже комбинируются хорошо: всё, что нам нужно - это, в общем-то, сериализовать пару, умея сериализовать её компоненты; это делается банальной композицией соответствующих преобразователей:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;module&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;class&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; a &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize &lt;font color="#b8850a"&gt;::&lt;/font&gt; (b &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (a, b) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize &lt;font color="#b8850a"&gt;::&lt;/font&gt; (&lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; b) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; (a, b)
&lt;/pre&gt;
Коль скоро мы хотим, всё-таки, именно сериализации и десериализации - нам понадобятся соответствующие функции
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;writeSer&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; a &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;writeSer&lt;/font&gt; x &lt;font color="#b8850a"&gt;=&lt;/font&gt; serialize (const &lt;font color="#bb8f8f"&gt;""&lt;/font&gt;) (x, &lt;font color="#218a21"&gt;()&lt;/font&gt;)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;readSer&lt;/font&gt; &lt;font color="#b8850a"&gt;::&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;String&lt;/font&gt; &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; a
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;readSer&lt;/font&gt; s &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; (x, &lt;font color="#218a21"&gt;()&lt;/font&gt;) &lt;font color="#b8850a"&gt;=&lt;/font&gt; deserialize (const &lt;font color="#218a21"&gt;()&lt;/font&gt;) s &lt;font color="#7f007f"&gt;in&lt;/font&gt; x
&lt;/pre&gt;
Ключевая идея - в том, что мы худо-бедно знаем, как сериализовать (), а, значит, можем (при помощи нашего преобразователя) сериализовать пару, где () будет на втором месте - а это то же самое, что сериализовать первый компонент пары.
&lt;br /&gt;
Кстати, это наше знание, как сериализовать () надо бы оформить:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; &lt;font color="#218a21"&gt;()&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (&lt;font color="#7f007f"&gt;_&lt;/font&gt;, y) &lt;font color="#b8850a"&gt;=&lt;/font&gt; f y
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f s &lt;font color="#b8850a"&gt;=&lt;/font&gt; (&lt;font color="#218a21"&gt;()&lt;/font&gt;, f s)
&lt;/pre&gt;
Далее, обещанная сериализация пары:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; (&lt;font color="#218a21"&gt;Serialize&lt;/font&gt; a, &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; b) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; (a, b) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f ((x, y), z) &lt;font color="#b8850a"&gt;=&lt;/font&gt; serialize (serialize f) (x, (y, z))
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f s &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; (x, (y, z)) &lt;font color="#b8850a"&gt;=&lt;/font&gt; deserialize (deserialize f) s &lt;font color="#7f007f"&gt;in&lt;/font&gt; ((x, y), z)
&lt;/pre&gt;
Ну и ещё несколько инстансов, шоб було; они все довольно очевидные:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; &lt;font color="#218a21"&gt;Integer&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (n, y) &lt;font color="#b8850a"&gt;=&lt;/font&gt; show n &lt;font color="#b8850a"&gt;++&lt;/font&gt; &lt;font color="#bb8f8f"&gt;","&lt;/font&gt; &lt;font color="#b8850a"&gt;++&lt;/font&gt; f y
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f s &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; (s1, &lt;font color="#bb8f8f"&gt;','&lt;/font&gt;&lt;font color="#218a21"&gt;:&lt;/font&gt;s2) &lt;font color="#b8850a"&gt;=&lt;/font&gt; break (&lt;font color="#bb8f8f"&gt;','&lt;/font&gt; &lt;font color="#b8850a"&gt;==&lt;/font&gt;) s &lt;font color="#7f007f"&gt;in&lt;/font&gt; (read s1, f s2)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; (&lt;font color="#218a21"&gt;Maybe&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (&lt;font color="#218a21"&gt;Nothing&lt;/font&gt;, y) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#bb8f8f"&gt;'N'&lt;/font&gt; &lt;font color="#218a21"&gt;:&lt;/font&gt; f y
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (&lt;font color="#218a21"&gt;Just&lt;/font&gt; x, y) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#bb8f8f"&gt;'Y'&lt;/font&gt; &lt;font color="#218a21"&gt;:&lt;/font&gt; serialize f (x, y)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f (&lt;font color="#bb8f8f"&gt;'N'&lt;/font&gt;&lt;font color="#218a21"&gt;:&lt;/font&gt;s) &lt;font color="#b8850a"&gt;=&lt;/font&gt; (&lt;font color="#218a21"&gt;Nothing&lt;/font&gt;, f s)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f (&lt;font color="#bb8f8f"&gt;'Y'&lt;/font&gt;&lt;font color="#218a21"&gt;:&lt;/font&gt;s) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#7f007f"&gt;let&lt;/font&gt; (x, y) &lt;font color="#b8850a"&gt;=&lt;/font&gt; deserialize f s &lt;font color="#7f007f"&gt;in&lt;/font&gt; (&lt;font color="#218a21"&gt;Just&lt;/font&gt; x, y)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt; &lt;font color="#218a21"&gt;Bool&lt;/font&gt; &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (&lt;font color="#218a21"&gt;True&lt;/font&gt;, x) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#bb8f8f"&gt;'y'&lt;/font&gt; &lt;font color="#218a21"&gt;:&lt;/font&gt; f x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     serialize f (&lt;font color="#218a21"&gt;False&lt;/font&gt;, x) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#bb8f8f"&gt;'n'&lt;/font&gt; &lt;font color="#218a21"&gt;:&lt;/font&gt; f x
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f (&lt;font color="#bb8f8f"&gt;'y'&lt;/font&gt;&lt;font color="#218a21"&gt;:&lt;/font&gt;s) &lt;font color="#b8850a"&gt;=&lt;/font&gt; (&lt;font color="#218a21"&gt;True&lt;/font&gt;, f s)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     deserialize f (&lt;font color="#bb8f8f"&gt;'n'&lt;/font&gt;&lt;font color="#218a21"&gt;:&lt;/font&gt;s) &lt;font color="#b8850a"&gt;=&lt;/font&gt; (&lt;font color="#218a21"&gt;False&lt;/font&gt;, f s)
&lt;/pre&gt;
OK, далее начинается интересное. Допустим, у нас уже есть некая стрелка, и мы хотим добавить в неё состояние, причём достаточно произвольного типа. При комбинировании стрелок соответствующие состояния тоже должны комбинироваться. Стрелка имеет некоторое состояние и в процессе вычисления ИЗМЕНЯЕТ его.
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#b12121"&gt;{-&lt;/font&gt;&lt;font color="#b12121"&gt;# LANGUAGE ExistentialQuantification, Arrows #-}&lt;/font&gt;
&lt;/pre&gt;
Коли наше состояние должно быть различных типов - не обойтись без forall; коли мы говорим о стрелках - не обойтись без специального синтаксиса для них.
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Control.Arrow&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#7f007f"&gt;qualified&lt;/font&gt; &lt;font color="#218a21"&gt;Control.Category&lt;/font&gt; &lt;font color="#7f007f"&gt;as&lt;/font&gt; &lt;font color="#218a21"&gt;C&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Pointed&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;import&lt;/font&gt; &lt;font color="#218a21"&gt;Serialize&lt;/font&gt;
&lt;/pre&gt;
Первые два импорта стандартны для программ, определяющих свои стрелки; последние два - подключаем два предыдущих модуля, так как состояние у нас обязательно будет а) сериализуемое, и б) имеющее значение по умолчанию. Модуль Control.Category подключается с префиксом, так как в нём есть функция id, конфликтящая со стандартной.
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;data&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; a input output &lt;font color="#b8850a"&gt;=&lt;/font&gt; forall local&lt;font color="#b8850a"&gt;.&lt;/font&gt; (&lt;font color="#218a21"&gt;Serialize&lt;/font&gt; local, &lt;font color="#218a21"&gt;Pointed&lt;/font&gt; local) &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; (a (input, local) (output, local))
&lt;/pre&gt;
И вот он, самый смак. Определение почти очевидное; вместо двух наших классов можно использовать любой класс X, лишь бы для него был определён instance (X a, X b) =&amp;gt; X (a, b). Однако, как только оно написано, определения стрелочных операций получаются моментально:
&lt;pre style="white-space:pre-wrap;white-space:-moz-pre-wrap"&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Arrow&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;C.Category&lt;/font&gt; (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     id &lt;font color="#b8850a"&gt;=&lt;/font&gt; arr id
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns2 &lt;font color="#b8850a"&gt;.&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns1 &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; ns &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                   proc (input, (local1, local2)) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       &lt;font color="#7f007f"&gt;do&lt;/font&gt; (middle, l1) &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; ns1 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (input, local1)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                          (output, l2) &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; ns2 &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (middle, local2)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                          returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (output, (l1, l2))
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;Arrow&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;Arrow&lt;/font&gt; (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     arr f &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; &lt;font color="#b8850a"&gt;$&lt;/font&gt; proc (input, &lt;font color="#7f007f"&gt;_&lt;/font&gt;) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (f input, &lt;font color="#218a21"&gt;()&lt;/font&gt;)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     first (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns'
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; ns' &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                   proc ((input, z), local) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       &lt;font color="#7f007f"&gt;do&lt;/font&gt; (output, l) &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; ns &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (input, local)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                          returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; ((output, z), l)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;ArrowChoice&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;ArrowChoice&lt;/font&gt; (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     left (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns'
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; ns' &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                   proc (inputOrZ, local) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       &lt;font color="#7f007f"&gt;case&lt;/font&gt; inputOrZ &lt;font color="#7f007f"&gt;of&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                         &lt;font color="#218a21"&gt;Left&lt;/font&gt; input &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                             &lt;font color="#7f007f"&gt;do&lt;/font&gt; (output, l) &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; ns &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (input, local)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                                returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (&lt;font color="#218a21"&gt;Left&lt;/font&gt; output, l)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                         &lt;font color="#218a21"&gt;Right&lt;/font&gt; z &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt; returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (&lt;font color="#218a21"&gt;Right&lt;/font&gt; z, local)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#7f007f"&gt;instance&lt;/font&gt; &lt;font color="#218a21"&gt;ArrowLoop&lt;/font&gt; a &lt;font color="#b8850a"&gt;=&amp;gt;&lt;/font&gt; &lt;font color="#218a21"&gt;ArrowLoop&lt;/font&gt; (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; a) &lt;font color="#7f007f"&gt;where&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;     loop (&lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns) &lt;font color="#b8850a"&gt;=&lt;/font&gt; &lt;font color="#218a21"&gt;NetState&lt;/font&gt; ns'
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;         &lt;font color="#7f007f"&gt;where&lt;/font&gt; ns' &lt;font color="#b8850a"&gt;=&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                   proc (input, local) &lt;font color="#b8850a"&gt;-&amp;gt;&lt;/font&gt;
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                       &lt;font color="#7f007f"&gt;do&lt;/font&gt; rec ((output, z), l) &lt;font color="#b8850a"&gt;&amp;lt;-&lt;/font&gt; ns &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; ((input, z), local)
&lt;font color="#b8850a"&gt;&amp;gt;&lt;/font&gt;                          returnA &lt;font color="#b8850a"&gt;-&amp;lt;&lt;/font&gt; (output, l)
&lt;/pre&gt;
Здесь почти не о чем говорить. Состояние композиции двух стрелок есть пара из состояния первой и состояния второй из них. Обратите внимание, что для instance C.Category (NetState a) недостаточно C.Category a, требуется Arrow.
&lt;br /&gt;
Продолжение следует.
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%B3%D1%80%D1%83%D1%88%D0%B5%D1%87%D0%BD%D1%8B%D0%B9-%D0%B2%D0%B5%D0%B1---1.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:27386</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/27386.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=27386"/>
    <title>On Vox: О флагах</title>
    <published>2009-03-21T22:29:37Z</published>
    <updated>2009-03-21T22:29:37Z</updated>
    <content type="html">&lt;p&gt;Продолжается процесс выбора логотипа для Хаскеля. У меня потихоньку закрадываются сомнения в том, что этот процесс является сходящимся.&lt;/p&gt;&lt;p&gt;А вот я сегодня увидел где-то флаг Чехии:&lt;br /&gt;
    
    
    

    
    
    
&lt;div at:enclosure="asset" at:xid="6a00e398c5c26f0005011015f37878860b" at:format="large" at:align="center" class="enclosure enclosure-center enclosure-large photo-enclosure" style="text-align: center;"&gt;
&lt;div class="enclosure-inner" style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"&gt;
    &lt;div class="enclosure-list"&gt;
        &lt;div class="enclosure-item photo-asset last"&gt;
    
            &lt;div class="enclosure-image"&gt;
        
                &lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f0005011015f37878860b.html"&gt;&lt;img src="http://a0.vox.com/6a00e398c5c26f0005011015f37878860b-320pi" alt="Czech" title="Czech" /&gt;&lt;/a&gt;
        
            &lt;/div&gt;
            &lt;div class="enclosure-meta"&gt;
                &lt;div class="enclosure-asset-name"&gt;&lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f0005011015f37878860b.html" title="Czech"&gt;Czech&lt;/a&gt;&lt;/div&gt;
            &lt;/div&gt;
    
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

И понял, что это почти наш флаг:&lt;br /&gt;
    
    
    

    
    
    
&lt;div at:enclosure="asset" at:xid="6a00e398c5c26f0005011016731b69860d" at:format="large" at:align="center" class="enclosure enclosure-center enclosure-large photo-enclosure" style="text-align: center;"&gt;
&lt;div class="enclosure-inner" style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"&gt;
    &lt;div class="enclosure-list"&gt;
        &lt;div class="enclosure-item photo-asset last"&gt;
    
            &lt;div class="enclosure-image"&gt;
        
                &lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f0005011016731b69860d.html"&gt;&lt;img src="http://a1.vox.com/6a00e398c5c26f0005011016731b69860d-320pi" alt="Haskell" title="Haskell" /&gt;&lt;/a&gt;
        
            &lt;/div&gt;
            &lt;div class="enclosure-meta"&gt;
                &lt;div class="enclosure-asset-name"&gt;&lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f0005011016731b69860d.html" title="Haskell"&gt;Haskell&lt;/a&gt;&lt;/div&gt;
            &lt;/div&gt;
    
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BE-%D1%84%D0%BB%D0%B0%D0%B3%D0%B0%D1%85.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:26696</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/26696.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=26696"/>
    <title>On Vox: Взаимность</title>
    <published>2009-03-17T12:05:31Z</published>
    <updated>2009-03-17T12:05:31Z</updated>
    <content type="html">&lt;p&gt;&amp;#x41A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x432; Haskell-cafe &amp;#x43E;&amp;#x431;&amp;#x441;&amp;#x443;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x43A;&amp;#x430;&amp;#x442; - &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;. &amp;#x422;&amp;#x435;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x44C; &amp;#x432; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x44B;&amp;#x43B;&amp;#x43A;&amp;#x435; &amp;#x43F;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x443; &amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x43E;&amp;#x431;&amp;#x441;&amp;#x443;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x442;&amp;#x44C; Haskell. &amp;#x418; &amp;#x432;&amp;#x435;&amp;#x441;&amp;#x44C;&amp;#x43C;&amp;#x430; &amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x432;&amp;#x43D;&amp;#x43E;, &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x44F; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x44B; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;. &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC%D0%BD%D0%BE%D1%81%D1%82%D1%8C.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:26381</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/26381.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=26381"/>
    <title>On Vox: Интересно</title>
    <published>2009-02-16T16:29:15Z</published>
    <updated>2009-02-16T16:29:15Z</updated>
    <content type="html">&lt;p&gt;&amp;#x432; &amp;#x445;&amp;#x43E;&amp;#x445;&amp;#x43C;&amp;#x430;&amp;#x433;&amp;#x430;&amp;#x437;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x445; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x43A;&amp;#x443;&amp;#x43F;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x430;&amp;#x441; &amp;#x441;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x43A;&amp;#x43E;&amp;#x439;, &amp;#x43D;&amp;#x430;&amp;#x43C;&amp;#x430;&amp;#x433;&amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x451;&amp;#x43A;? &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D0%BE-1.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:26138</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/26138.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=26138"/>
    <title>On Vox: Просамоцитируюсь</title>
    <published>2009-02-09T12:25:34Z</published>
    <updated>2009-02-09T12:25:34Z</updated>
    <content type="html">&lt;p&gt;Из комментов к посту про платную/бесплатную медицину на ЛОРе:&lt;/p&gt;&lt;p&gt;&lt;em&gt;&amp;gt; Сервис - ничуть не хуже коммерческого.&lt;/p&gt;&lt;/em&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Ты пробовал когда-нибудь попадать в больницу? Обычную, бюджетную?
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Меня бог пока миловал. Зато некоторых родственников я там посещал (и сопровождал).
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Так вот. Сначала, приехав, ты несколько часов лежишь на каталке в
приёмном покое. Вокруг тебя толчётся человек двадцать больных с
разнообразными неизвестными пока болячками. Медсестёр две-три, и на
вопрос &amp;quot;сестра, когда же моя очередь&amp;quot; они злобно огрызаются, ибо
заебались уже всем повторять, что не знают. Вполне возможна ситуация,
когда кто-нибудь подойдёт и вколет тебе что-нибудь, проигнорировав твои
робкие вопросы &amp;quot;а что это&amp;quot; и &amp;quot;от чего это&amp;quot; - лежи потом, и думай, не
перепутали ли тебя с другим больным. Каталка неудобная, где сортир -
неизвестно, поесть не принесут.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Потом
ты попадаешь в палату, где лежат ещё четыре-пять человек. Один из них
непрерывно орёт. Не потому, что ему больно, нет. Просто он сумасшедший.
Поэтому никто никаких мер, чтобы он не орал, принимать не будет. Если
ты можешь ходить, то ещё один сосед будет с частотой раз в пять минут
просить тебя позвать сестру, потому как сам он ходить не может. Если ты
не можешь ходить, то никто из соседей для тебя сестру не позовёт. А
если позовёт - будет хуже, сестра придёт злобная и уставшая от
постоянной беготни по больным. Вонища в палате будет стоять страшная, а
если ты попытаешься проветрить помещение, на тебя заорут в несколько
глоток, что ты хочешь, чтобы они все поумирали от простуды - что,
кстати, недалеко от истины.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Поесть
ты сможешь; если ты лежачий - тебе принесут. Принесут откровенные
помои. Не торопись вставать на ноги - в столовой то же самое. Если у
тебя нет родственников, которые готовы каждый день носить тебе еду -
твои дела плохи. Именно каждый день, потому что холодильника нет и не
будет. Об элементарной вещи типа электрической розетки в палате (хотя
бы мобильник зарядить) - не мечтай. И не оставляй мобилу без внимания -
в больницах воруют, и много.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Если
ты совсем плох и вообще ничего не можешь - больница сделает тебе ещё
хуже. Сталкивался со случаем, когда больной, простите, обосрался и
лежал в собственном дерьме - он физически был не в состоянии что-то
исправить, а сестра подходить не торопилась.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Не
думай, что, заплатив медсестре, ты сможешь избавиться хотя бы от одного
недостатка из указанных. Платят ВСЕ. Ну, или, по крайней мере, многие.
Они физически не в состоянии обеспечить более-менее полноценный уход
каждому.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;Излишне
говорить, что в КОММЕРЧЕСКИХ больницах ничего этого нет. Исключением
может стать разве что качество еды - оно и в платных больницах бывает
не очень (хотя и получше), но зато холодильник там, как правило, есть.
&lt;/p&gt;&lt;p style="white-space: normal;"&gt;&lt;span style="color: green;"&gt;&lt;/span&gt;А
теперь учти: если ты вызовешь бесплатную скорую, и она обнаружит, что
тебе необходима госпитализация - тебя повезут в бесплатную же больницу.
В ту, к которой эта скорая приписана. Если ты вызываешь платную скорую
- тебя повезут в ту больницу, в которую ты захочешь сам; если твои
предпочтения не столь определённы - врач обзвонит больницы, которые
тебе подходят, и выяснит, где есть места.&lt;/p&gt;&lt;p&gt;Miguel&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BF%D1%80%D0%BE%D1%81%D0%B0%D0%BC%D0%BE%D1%86%D0%B8%D1%82%D0%B8%D1%80%D1%83%D1%8E%D1%81%D1%8C.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:25980</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/25980.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=25980"/>
    <title>On Vox: Объясните, а?</title>
    <published>2009-02-04T20:51:01Z</published>
    <updated>2009-02-04T20:51:01Z</updated>
    <content type="html">&lt;p&gt;&amp;#x412;&amp;#x43E;&amp;#x442; &amp;#x435;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x445;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x434; (&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x440; &amp;#x443;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x449;&amp;#x451;&amp;#x43D; &amp;#x434;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;):&lt;br /&gt;&lt;pre style="white-space: pre-wrap"&gt;&lt;span style="color: #7f007f"&gt;data&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; a (forall b&lt;span style="color: #b8850a"&gt;.&lt;/span&gt; b &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; (a, b))&lt;/pre&gt;&amp;#x41D;&amp;#x43E;&amp;#x440;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x43F;&amp;#x438;&amp;#x43B;&amp;#x438;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x443;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x433;&amp;#x43C;&amp;#x443; &lt;code&gt;&lt;span style="color: #b12121"&gt;LANGUAGE RankNTypes&lt;/span&gt;&lt;/code&gt; &amp;#x432; GHC &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x438;&amp;#x43A; &lt;code&gt;-98&lt;/code&gt; &amp;#x432; Hugs-&amp;#x435;.&lt;br /&gt;&amp;#x41C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x438;&amp;#x441;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; "&amp;#x433;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x432;" &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &lt;code&gt;&lt;span style="color: #218a21"&gt;P&lt;/span&gt;&lt;/code&gt;:&lt;pre style="white-space: pre-wrap"&gt;&lt;span style="color: #0000ff"&gt;sameValue&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; a&lt;br /&gt;&lt;span style="color: #0000ff"&gt;sameValue&lt;/span&gt; x &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; x (&lt;span style="color: #b8850a"&gt;\&lt;/span&gt;y &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; sameValue (x, y))&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;firstRest&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; a&lt;br /&gt;&lt;span style="color: #0000ff"&gt;firstRest&lt;/span&gt; x y &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; x (&lt;span style="color: #b8850a"&gt;\&lt;/span&gt;z &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; sameValue (y, z))&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;switching&lt;/span&gt; &lt;span style="color: #b8850a"&gt;::&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; a &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; a&lt;br /&gt;&lt;span style="color: #0000ff"&gt;switching&lt;/span&gt; x y &lt;span style="color: #b8850a"&gt;=&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; x (&lt;span style="color: #b8850a"&gt;\&lt;/span&gt;z &lt;span style="color: #b8850a"&gt;-&amp;gt;&lt;/span&gt; switching (y, z) (x, z))&lt;/pre&gt;&amp;#x41A;&amp;#x430;&amp;#x43A; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x430; C++???&lt;br /&gt;&amp;#x42F; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43B;, &amp;#x43C;&amp;#x43E;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x43B;&amp;#x44E;&amp;#x441;-&amp;#x444;&amp;#x443; &amp;#x43D;&amp;#x435; &amp;#x445;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x43B;&amp;#x43E;. &amp;#x421;&amp;#x432;&amp;#x435;&amp;#x442;&amp;#x438;&amp;#x43B;&amp;#x44B;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x44B; &amp;#x435;&amp;#x441;&amp;#x442;&amp;#x44C;, &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x442;&amp;#x44C;?&lt;br /&gt;&amp;#x425;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x435; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x433;&amp;#x43E;:&lt;pre style="white-space: pre-wrap"&gt;&lt;br /&gt;&lt;span style="color: #da6fd5"&gt;#include&lt;/span&gt; &lt;span style="color: #bb8f8f"&gt;&amp;lt;map&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #7f007f"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color: #7f007f"&gt;class&lt;/span&gt; &lt;span style="color: #218a21"&gt;A&lt;/span&gt;&amp;gt; &lt;span style="color: #7f007f"&gt;class&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt; {&lt;br /&gt;&amp;#xA0; &lt;span style="color: #218a21"&gt;A&lt;/span&gt; &lt;span style="color: #b8850a"&gt;car&lt;/span&gt;;&lt;br /&gt;&amp;#xA0; &lt;span style="color: #7f007f"&gt;template&lt;/span&gt; &amp;lt;&lt;span style="color: #7f007f"&gt;class&lt;/span&gt; &lt;span style="color: #218a21"&gt;B&lt;/span&gt;&amp;gt; &lt;span style="color: #7f007f"&gt;virtual&lt;/span&gt; &lt;span style="color: #218a21"&gt;P&lt;/span&gt;&amp;lt;&lt;span style="color: #5f9e9f"&gt;std&lt;/span&gt;::&lt;span style="color: #218a21"&gt;pair&lt;/span&gt;&amp;lt;&lt;span style="color: #218a21"&gt;A&lt;/span&gt;,&lt;span style="color: #218a21"&gt;B&lt;/span&gt;&amp;gt; &amp;gt; &lt;span style="color: #0000ff"&gt;cdr&lt;/span&gt; (&lt;span style="color: #218a21"&gt;B&lt;/span&gt;) = 0;&lt;br /&gt;};&lt;/pre&gt;&lt;br /&gt;&amp;#x41D;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;, &amp;#x438;&amp;#x431;&amp;#x43E; &lt;code&gt;&lt;span style="color: #7f007f"&gt;template&lt;/span&gt;&lt;/code&gt; &amp;#x438; &lt;code&gt;&lt;span style="color: #7f007f"&gt;virtual&lt;/span&gt;&lt;/code&gt; &amp;#x432;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x436;&amp;#x438;&amp;#x432;&amp;#x443;&amp;#x442;. &amp;#x423;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x44C; &lt;code&gt;&lt;span style="color: #7f007f"&gt;virtual&lt;/span&gt;&lt;/code&gt; &amp;#x43D;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x44F; - &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441; &amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x430;&amp;#x431;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x439;, &amp;#x440;&amp;#x435;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x437;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x44F; &amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x438; &lt;code&gt;&lt;span style="color: #0000ff"&gt;cdr&lt;/span&gt;&lt;/code&gt; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x435;&amp;#x442; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x43E;&amp;#x439; (&amp;#x441;&amp;#x43C;. &amp;#x432;&amp;#x44B;&amp;#x448;&amp;#x435;), &amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x443; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x443; &amp;#x43D;&amp;#x430;&amp;#x434;&amp;#x43E; &amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x442;&amp;#x44C; "&amp;#x43F;&amp;#x43E;&amp;#x434; &amp;#x43A;&amp;#x430;&amp;#x43F;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x43C;", &amp;#x443;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x44F; &amp;#x432;&amp;#x435;&amp;#x437;&amp;#x434;&amp;#x435; &amp;#x431;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x439; &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;.&lt;br /&gt;&amp;#x41A;&amp;#x430;&amp;#x43A;?&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BE%D0%B1%D1%8A%D1%8F%D1%81%D0%BD%D0%B8%D1%82%D0%B5-%D0%B0.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:25702</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/25702.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=25702"/>
    <title>On Vox: Дивное</title>
    <published>2009-01-17T23:29:55Z</published>
    <updated>2009-01-17T23:29:55Z</updated>
    <content type="html">&lt;p&gt;Сюрьреализьмом попахивает.
&lt;/p&gt; &lt;div&gt;
    
    
    

    
    
    
&lt;div at:enclosure="asset" at:xid="6a00e398c5c26f00050109d07d7d23000e" at:format="extra-large" at:align="center" class="enclosure enclosure-center enclosure-extra-large photo-enclosure" style="text-align: center;"&gt;
&lt;div class="enclosure-inner" style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"&gt;
    &lt;div class="enclosure-list"&gt;
        &lt;div class="enclosure-item photo-asset last"&gt;
    
            &lt;div class="enclosure-image"&gt;
        
                &lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f00050109d07d7d23000e.html"&gt;&lt;img src="http://a3.vox.com/6a00e398c5c26f00050109d07d7d23000e-500pi" alt="Ramka" title="Ramka" /&gt;&lt;/a&gt;
        
            &lt;/div&gt;
            &lt;div class="enclosure-meta"&gt;
                &lt;div class="enclosure-asset-name"&gt;&lt;a href="http://migmit.vox.com/library/photo/6a00e398c5c26f00050109d07d7d23000e.html" title="Ramka"&gt;Ramka&lt;/a&gt;&lt;/div&gt;
            &lt;/div&gt;
    
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Покрадено &lt;a href="http://scottishkot.livejournal.com/458796.html"&gt;отсюда&lt;/a&gt;.&lt;/div&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B4%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:25466</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/25466.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=25466"/>
    <title>On Vox: Вау</title>
    <published>2009-01-13T19:04:35Z</published>
    <updated>2009-01-13T19:04:35Z</updated>
    <content type="html">&lt;p&gt;&amp;#x422;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x431;&amp;#x43D;&amp;#x430;&amp;#x440;&amp;#x443;&amp;#x436;&amp;#x438;&amp;#x43B;. &amp;#x41E;&amp;#x444;&amp;#x438;&amp;#x433;&amp;#x435;&amp;#x43B;.&lt;br /&gt;http://goosh.org/&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B2%D0%B0%D1%83.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:25158</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/25158.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=25158"/>
    <title>On Vox: Попробовал написать</title>
    <published>2008-12-24T20:33:16Z</published>
    <updated>2008-12-24T20:33:16Z</updated>
    <content type="html">&lt;p&gt;&amp;#x434;&amp;#x43B;&amp;#x438;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x43E; &amp;#x445;&amp;#x430;&amp;#x441;&amp;#x43A;&amp;#x435;&amp;#x43B;&amp;#x44C;. &amp;#x41F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435; &amp;#x443;&amp;#x441;&amp;#x443;&amp;#x448;&amp;#x43A;&amp;#x438; &amp;#x438; &amp;#x443;&amp;#x442;&amp;#x440;&amp;#x443;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x43E;&amp;#x441;&amp;#x44C; &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x435;&amp;#x435;:&lt;/p&gt;&lt;p&gt;&amp;#x411;&amp;#x435;&amp;#x437;&amp;#x434;&amp;#x443;&amp;#x448;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; - &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x431;&amp;#x435;&amp;#x437; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x43E;&amp;#x432; do.&lt;/p&gt;&lt;p&gt;&amp;#x41F;&amp;#x440;&amp;#x438;&amp;#x447;&amp;#x451;&amp;#x43C; &amp;#x44F; &amp;#x434;&amp;#x430;&amp;#x436;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x443;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x43D;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43B;&amp;#x44F;&amp;#x43C;&amp;#x437;&amp;#x438;&amp;#x43B; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x433;&amp;#x434;&amp;#x435;-&amp;#x43D;&amp;#x438;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C;.&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%BF%D0%BE%D0%BF%D1%80%D0%BE%D0%B1%D0%BE%D0%B2%D0%B0%D0%BB-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:24896</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/24896.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=24896"/>
    <title>On Vox: И ещё перевод</title>
    <published>2008-12-16T23:08:55Z</published>
    <updated>2008-12-16T23:08:55Z</updated>
    <content type="html">&lt;p&gt;&amp;#x41E;&amp;#x440;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43B; &amp;#x437;&amp;#x434;&amp;#x435;&amp;#x441;&amp;#x44C;: http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html&lt;/p&gt;&lt;p&gt;&amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x438; &amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x43E;&amp;#x437;&amp;#x43D;&amp;#x44B;&amp;#x43C;&amp;#x438; &amp;#x443;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;&amp;#x43C;&amp;#x438;.&lt;br /&gt;&amp;#x41F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;: &amp;#x432; haskell-cafe &amp;#x443;&amp;#x436;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x43E;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441; "&amp;#x427;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x438;&amp;#x442; '&amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438;'?"&lt;/p&gt;&lt;p&gt;&amp;#x418;&amp;#x434;&amp;#x435;&amp;#x44F; &amp;#x43F;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x440;&amp;#x43F;&amp;#x43D;&amp;#x443;&amp;#x442;&amp;#x430; &amp;#x438;&amp;#x437; &amp;#x438;&amp;#x437;&amp;#x432;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x441;&amp;#x442;&amp;#x430; "&amp;#x415;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x431;&amp;#x44B;&amp;#x43B;&amp;#x438; &amp;#x430;&amp;#x432;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x43E;&amp;#x431;&amp;#x438;&amp;#x43B;&amp;#x44F;&amp;#x43C;&amp;#x438;".&lt;/p&gt;&lt;p&gt;C - &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x443;&amp;#x434;&amp;#x430;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x41E;&amp;#x43D; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;, &amp;#x441;&amp;#x43E;&amp;#x434;&amp;#x435;&amp;#x440;&amp;#x436;&amp;#x438;&amp;#x442; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x43E;&amp;#x435; &amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E; &amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439;, &amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x430;&amp;#x44F; &amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x430; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43C;&amp;#x430; &amp;#x441; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x438; &amp;#x443;&amp;#x432;&amp;#x430;&amp;#x436;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x438;&amp;#x445;. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x431;&amp;#x43B;&amp;#x435;&amp;#x43C;&amp;#x430; &amp;#x432; &amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x439;&amp;#x442;&amp;#x438; &amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x443; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x443; &amp;#x43D;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x44F; - &amp;#x432;&amp;#x44B; &amp;#x43B;&amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x435; &amp;#x435;&amp;#x439; &amp;#x441; &amp;#x440;&amp;#x43E;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;, &amp;#x43B;&amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x442;&amp;#x435; &amp;#x435;&amp;#x451; &amp;#x438;&amp;#x434;&amp;#x438;&amp;#x43E;&amp;#x442;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x439;. &amp;#x41A;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x438;, &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x434;&amp;#x451;&amp;#x442; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;, &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x44C; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x441;&amp;#x432;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x432;&amp;#x438;&amp;#x43D;&amp;#x443; &amp;#x43D;&amp;#x430; C (&amp;#x441;&amp;#x43E;&amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;, &amp;#x435;&amp;#x432;&amp;#x440;&amp;#x435;&amp;#x435;&amp;#x432;).&lt;/p&gt;&lt;p&gt;Java - &amp;#x43E;&amp;#x440;&amp;#x442;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x441;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x445;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;. &amp;#x422;&amp;#x435;&amp;#x43E;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;, Java &amp;#x43E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x430; &amp;#x43D;&amp;#x430; C, &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E; &amp;#x43E;&amp;#x43D;&amp;#x430; &amp;#x43E;&amp;#x442;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x435; &amp;#x43A;&amp;#x43E;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x445; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x43B;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x448;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435;&amp;#x43F;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x436;&amp;#x430; &amp;#x43D;&amp;#x430; &amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43B;. &amp;#x412;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x438;&amp;#x445; &amp;#x43F;&amp;#x43E;&amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x44E;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x44B;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x43B;&amp;#x430;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44B; &amp;#x438;&amp;#x441;&amp;#x43A;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x442; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x448;&amp;#x438;&amp;#x43C;&amp;#x438;, &amp;#x447;&amp;#x435;&amp;#x43C; &amp;#x441;&amp;#x442;&amp;#x430;&amp;#x440;&amp;#x44B;&amp;#x435;. &amp;#x41F;&amp;#x440;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x43E;&amp;#x43D;&amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x443;&amp;#x431;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x44B;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x445; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A; - &amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x448;&amp;#x438;&amp;#x439; &amp;#x432; &amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x435;, &amp;#x43D;&amp;#x43E; &amp;#x433;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x432;&amp;#x44B; &amp;#x441;&amp;#x436;&amp;#x438;&amp;#x433;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x435; &amp;#x442;&amp;#x435;&amp;#x445;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x441; &amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x435;&amp;#x43D;.&lt;/p&gt;&lt;p&gt;PHP - &amp;#x43D;&amp;#x435;&amp;#x444;&amp;#x43E;&amp;#x440;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x445;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E; (&amp;#x432; &amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x435; Cafeteria Christianity - &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x448;&amp;#x451;&amp;#x43B; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x430;). &amp;#x41E;&amp;#x43D;&amp;#x43E; &amp;#x431;&amp;#x43E;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; Java &amp;#x437;&amp;#x430; &amp;#x440;&amp;#x44B;&amp;#x43D;&amp;#x43E;&amp;#x43A; &amp;#x432;&amp;#x435;&amp;#x431;-&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439;. &amp;#x417;&amp;#x430;&amp;#x438;&amp;#x43C;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x435;&amp;#x442; &amp;#x43D;&amp;#x435;&amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x446;&amp;#x435;&amp;#x43F;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x438;&amp;#x437; C &amp;#x438; Java, &amp;#x43D;&amp;#x43E; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x442;&amp;#x435;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x43D;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x44F;&amp;#x442;&amp;#x441;&amp;#x44F;. &amp;#x412;&amp;#x43E;&amp;#x437;&amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;, &amp;#x43E;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x438;, &amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x43E; &amp;#x43A;&amp;#x440;&amp;#x430;&amp;#x439;&amp;#x43D;&amp;#x435;&amp;#x439; &amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x435; &amp;#x434;&amp;#x430;&amp;#x451;&amp;#x442; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x44B; &amp;#x438;, &amp;#x412;&amp;#x420;&amp;#x41E;&amp;#x414;&amp;#x415; &amp;#x41A;&amp;#x410;&amp;#x41A;, &amp;#x441;&amp;#x43E;&amp;#x445;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x43E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43D;&amp;#x443;&amp;#x44E; &amp;#x438;&amp;#x434;&amp;#x435;&amp;#x44E;. &amp;#x414;&amp;#x430;, &amp;#x438; &amp;#x435;&amp;#x449;&amp;#x451;: &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x438;&amp;#x435; "goto hell" &amp;#x442;&amp;#x430;&amp;#x43C; &amp;#x43E;&amp;#x442;&amp;#x431;&amp;#x440;&amp;#x43E;&amp;#x448;&amp;#x435;&amp;#x43D;&amp;#x43E;.&lt;/p&gt;&lt;p&gt;&amp;#x421;++ - &amp;#x438;&amp;#x441;&amp;#x43B;&amp;#x430;&amp;#x43C;. &amp;#x41E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D; &amp;#x43D;&amp;#x430; C, &amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x445;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x432;&amp;#x441;&amp;#x435; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x437;&amp;#x430;&amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x442;&amp;#x44B;, &amp;#x430; &amp;#x435;&amp;#x449;&amp;#x451; &amp;#x438; &amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x43F;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x445; &amp;#x43D;&amp;#x438;&amp;#x445; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x443;&amp;#x44E; &amp;#x43A;&amp;#x443;&amp;#x447;&amp;#x443; &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x445;. &amp;#x41E;&amp;#x43D; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x435;&amp;#x43D;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x437; &amp;#x43D;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x435;&amp;#x43A;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x441;&amp;#x451;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E; - &amp;#x43E;&amp;#x442; &amp;#x447;&amp;#x443;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x438;&amp;#x449;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x437;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x441;&amp;#x442;&amp;#x432; &amp;#x434;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x43A;&amp;#x440;&amp;#x430;&amp;#x441;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x438;&amp;#x437;&amp;#x432;&amp;#x435;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439; &amp;#x438;&amp;#x441;&amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x430;. &amp;#x41F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x438; &amp;#x443;&amp;#x431;&amp;#x435;&amp;#x436;&amp;#x434;&amp;#x435;&amp;#x43D;&amp;#x44B;, &amp;#x447;&amp;#x442;&amp;#x43E; C++ - &amp;#x443;&amp;#x43D;&amp;#x438;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x441;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x433;&amp;#x43E;, &amp;#x43E;&amp;#x43F;&amp;#x442;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x432; &amp;#x43B;&amp;#x44E;&amp;#x431;&amp;#x43E;&amp;#x439; &amp;#x441;&amp;#x438;&amp;#x442;&amp;#x443;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438;, &amp;#x438; &amp;#x43C;&amp;#x43E;&amp;#x433;&amp;#x443;&amp;#x442; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x437;&amp;#x43B;&amp;#x438;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x44B; &amp;#x43D;&amp;#x435; &amp;#x441;&amp;#x43E;&amp;#x433;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x441;&amp;#x44C;. &amp;#x41D;&amp;#x430;&amp;#x438;&amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x435; &amp;#x440;&amp;#x430;&amp;#x434;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x430;&amp;#x434;&amp;#x435;&amp;#x43F;&amp;#x442;&amp;#x44B; &amp;#x431;&amp;#x443;&amp;#x434;&amp;#x443;&amp;#x442; &amp;#x443;&amp;#x433;&amp;#x440;&amp;#x43E;&amp;#x436;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x430;&amp;#x43C; &amp;#x444;&amp;#x438;&amp;#x437;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43E;&amp;#x439;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x44B; &amp;#x43D;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x43E; &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x43E;&amp;#x43C; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x435; &amp;#x438;&amp;#x43B;&amp;#x438; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x437;&amp;#x434;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;.&lt;/p&gt;&lt;p&gt;C# - &amp;#x43C;&amp;#x43E;&amp;#x440;&amp;#x43C;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x41F;&amp;#x43E;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x430;&amp;#x43B;&amp;#x443; &amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434; &amp;#x43D;&amp;#x430;&amp;#x43C;&amp;#x438; &amp;#x442;&amp;#x430; &amp;#x436;&amp;#x435; Java, &amp;#x43D;&amp;#x43E;, &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x448;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x443;&amp;#x447;&amp;#x448;&amp;#x435;, &amp;#x432;&amp;#x44B; &amp;#x437;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x430; &amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x44F; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x442;&amp;#x440;&amp;#x43E;&amp;#x43B;&amp;#x438;&amp;#x440;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x43A;&amp;#x43E;&amp;#x440;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x435;&amp;#x439; (&amp;#x43F;&amp;#x43E; &amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44E; &amp;#x430;&amp;#x434;&amp;#x435;&amp;#x43F;&amp;#x442;&amp;#x43E;&amp;#x432; Java &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x44E;&amp;#x449;&amp;#x435;&amp;#x439; &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x439; &amp;#x432;&amp;#x43E;&amp;#x43F;&amp;#x43B;&amp;#x43E;&amp;#x449;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x437;&amp;#x43B;&amp;#x430; &amp;#x43D;&amp;#x430; &amp;#x437;&amp;#x435;&amp;#x43C;&amp;#x43B;&amp;#x435;), &amp;#x430; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x442;&amp;#x435;&amp;#x43E;&amp;#x43B;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x441;&amp;#x438;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x430;&amp;#x44E;&amp;#x442;&amp;#x441;&amp;#x44F;. &amp;#x412;&amp;#x430;&amp;#x43C; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x434;&amp;#x430;&amp;#x436;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x442;&amp;#x44C;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435;&amp;#x43F;&amp;#x43B;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x439; &amp;#x432;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x442;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x431;&amp;#x44B; &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438; Java-&amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x438; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x438; &amp;#x443;&amp;#x43D;&amp;#x438;&amp;#x436;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x430;&amp;#x441; &amp;#x437;&amp;#x430; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; C#.&lt;/p&gt;&lt;p&gt;&amp;#x41B;&amp;#x438;&amp;#x441;&amp;#x43F; - &amp;#x434;&amp;#x437;&amp;#x435;&amp;#x43D;-&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x434;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x41D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x438;&amp;#x43D;&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x441;&amp;#x438;&amp;#x441;&amp;#x430;, &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x446;&amp;#x435;&amp;#x43D;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x437;&amp;#x430;&amp;#x446;&amp;#x438;&amp;#x438; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43E;&amp;#x443;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;, &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43A;&amp;#x43B;&amp;#x43E;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x442;&amp;#x44B;&amp;#x43C;. &amp;#x412;&amp;#x441;&amp;#x44F; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x430;&amp;#x44F; &amp;#x432; &amp;#x432;&amp;#x430;&amp;#x448;&amp;#x435;&amp;#x43C; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438; - &amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x432;&amp;#x435;&amp;#x442;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x435;&amp;#x451; &amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x44C;. &amp;#x41E;&amp;#x434;&amp;#x43D;&amp;#x438; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;, &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x435; - &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;, &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x439; &amp;#x441;&amp;#x43C;&amp;#x44B;&amp;#x441;&amp;#x43B;.&lt;/p&gt;&lt;p&gt;Haskell (&amp;#x43D;&amp;#x443; &amp;#x432;&amp;#x43E;&amp;#x442;, &amp;#x434;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C;!) - &amp;#x442;&amp;#x430;&amp;#x43E;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x41E;&amp;#x43D; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x43A;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x445;&amp;#x43E;&amp;#x436; &amp;#x43D;&amp;#x430; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x438;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x435;&amp;#x43A;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x432;&amp;#x441;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x44E;&amp;#x442;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x441; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x43E;&amp;#x449;&amp;#x44C;&amp;#x44E; &amp;#x432;&amp;#x43E;&amp;#x43E;&amp;#x431;&amp;#x449;&amp;#x435; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x435;&amp;#x435;. &amp;#x415;&amp;#x433;&amp;#x43E; &amp;#x430;&amp;#x434;&amp;#x435;&amp;#x43F;&amp;#x442;&amp;#x44B; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x44F;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x432; &amp;#x438;&amp;#x445; &amp;#x440;&amp;#x443;&amp;#x43A;&amp;#x430;&amp;#x445; - &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x43B;&amp;#x438;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447; &amp;#x43A; &amp;#x43C;&amp;#x443;&amp;#x434;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x438;, &amp;#x43D;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x430; &amp;#x43C;&amp;#x443;&amp;#x434;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x443;&amp;#x43F;&amp;#x43D;&amp;#x430; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443; &amp;#x441;&amp;#x43C;&amp;#x435;&amp;#x440;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x445;.&lt;/p&gt;&lt;p&gt;&amp;#x42D;&amp;#x440;&amp;#x43B;&amp;#x430;&amp;#x43D;&amp;#x433; - &amp;#x438;&amp;#x43D;&amp;#x434;&amp;#x443;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x415;&amp;#x449;&amp;#x451; &amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x43D; &amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;, &amp;#x43D;&amp;#x435;&amp;#x43F;&amp;#x43E;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x43D;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x44B;&amp;#x439; &amp;#x43D;&amp;#x430; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x43A;&amp;#x435;, &amp;#x43D;&amp;#x43E;, &amp;#x432; &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x438;&amp;#x435; &amp;#x43E;&amp;#x442; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x445; &amp;#x441;&amp;#x43E;&amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x43E;&amp;#x432;, &amp;#x43E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D; &amp;#x43D;&amp;#x430; &amp;#x438;&amp;#x434;&amp;#x435;&amp;#x435; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x447;&amp;#x438;&amp;#x441;&amp;#x43B;&amp;#x430; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x440;&amp;#x435;&amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x443;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x445; &amp;#x431;&amp;#x43E;&amp;#x433;&amp;#x43E;&amp;#x432;.&lt;/p&gt;&lt;p&gt;Perl - &amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x44F; &amp;#x432;&amp;#x443;&amp;#x434;&amp;#x443;. &amp;#x411;&amp;#x435;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x44F;&amp;#x434;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43D;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x440; &amp;#x43D;&amp;#x435;&amp;#x432;&amp;#x43D;&amp;#x44F;&amp;#x442;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x437;&amp;#x430;&amp;#x43A;&amp;#x43B;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x439;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x442;&amp;#x440;&amp;#x435;&amp;#x431;&amp;#x443;&amp;#x44E;&amp;#x442; &amp;#x43A;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x44C; &amp;#x43A;&amp;#x43E;&amp;#x437;&amp;#x43B;&amp;#x451;&amp;#x43D;&amp;#x43A;&amp;#x430;, &amp;#x43D;&amp;#x435;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x442;&amp;#x438;&amp;#x43C;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43B;&amp;#x430;&amp;#x433;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x445; &amp;#x442;&amp;#x432;&amp;#x43E;&amp;#x44E; &amp;#x434;&amp;#x443;&amp;#x448;&amp;#x443;. &amp;#x427;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E; &amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x437;&amp;#x443;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x448;&amp;#x435;&amp;#x444; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x438;&amp;#x442; &amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x443;&amp;#x44E; &amp;#x441;&amp;#x440;&amp;#x43E;&amp;#x447;&amp;#x43D;&amp;#x443;&amp;#x44E; &amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x443; &amp;#x432; &amp;#x434;&amp;#x435;&amp;#x432;&amp;#x44F;&amp;#x442;&amp;#x44C; &amp;#x432;&amp;#x435;&amp;#x447;&amp;#x435;&amp;#x440;&amp;#x430; &amp;#x432; &amp;#x43F;&amp;#x44F;&amp;#x442;&amp;#x43D;&amp;#x438;&amp;#x446;&amp;#x443;.&lt;/p&gt;&lt;p&gt;Lua - &amp;#x432;&amp;#x438;&amp;#x43A;&amp;#x43A;&amp;#x430;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;. &amp;#x41F;&amp;#x430;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x439; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x43B;&amp;#x435;&amp;#x433;&amp;#x43A;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x441;&amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x438;&amp;#x442;&amp;#x44C; &amp;#x43A; &amp;#x43E;&amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x44F;&amp;#x43C; &amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x439; &amp;#x43A;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x443;&amp;#x440;&amp;#x44B;, &amp;#x433;&amp;#x434;&amp;#x435; &amp;#x431;&amp;#x44B; &amp;#x432;&amp;#x44B; &amp;#x43D;&amp;#x438; &amp;#x43E;&amp;#x43A;&amp;#x430;&amp;#x437;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C;. &amp;#x41E;&amp;#x43D; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x435;&amp;#x442; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x44B;, &amp;#x432;&amp;#x43A;&amp;#x43B;&amp;#x44E;&amp;#x447;&amp;#x430;&amp;#x44F; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438;&amp;#x435; &amp;#x434;&amp;#x435;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x438;&amp;#x44F;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x44B;&amp;#x435; &amp;#x432; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x435;&amp;#x435; &amp;#x442;&amp;#x440;&amp;#x430;&amp;#x434;&amp;#x438;&amp;#x446;&amp;#x438;&amp;#x43E;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x440;&amp;#x435;&amp;#x43B;&amp;#x438;&amp;#x433;&amp;#x438;&amp;#x44F;&amp;#x445; &amp;#x441;&amp;#x447;&amp;#x438;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x431;&amp;#x44B; &amp;#x43C;&amp;#x430;&amp;#x433;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438;&amp;#x43C;&amp;#x438;. &amp;#x421;&amp;#x438;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x432;&amp;#x44F;&amp;#x437;&amp;#x430;&amp;#x43D; &amp;#x441; &amp;#x43B;&amp;#x443;&amp;#x43D;&amp;#x43E;&amp;#x439;. (&amp;#x41F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;: Lua - "&amp;#x43B;&amp;#x443;&amp;#x43D;&amp;#x430;" &amp;#x43D;&amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x442;&amp;#x443;&amp;#x433;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x43C;).&lt;/p&gt;&lt;p&gt;Ruby - &amp;#x43D;&amp;#x435;&amp;#x43E;&amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;. &amp;#x421;&amp;#x43C;&amp;#x435;&amp;#x441;&amp;#x44C; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43D;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x439; &amp;#x438; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x439;, &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x445; &amp;#x432; &amp;#x43A;&amp;#x443;&amp;#x447;&amp;#x443;, &amp;#x43E;&amp;#x442;&amp;#x434;&amp;#x430;&amp;#x43B;&amp;#x451;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43D;&amp;#x430;&amp;#x43F;&amp;#x43E;&amp;#x43C;&amp;#x438;&amp;#x43D;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x443;&amp;#x44E; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F;. &amp;#x427;&amp;#x438;&amp;#x441;&amp;#x43B;&amp;#x43E; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x430;&amp;#x434;&amp;#x435;&amp;#x43F;&amp;#x442;&amp;#x43E;&amp;#x432; &amp;#x431;&amp;#x44B;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x451;&amp;#x442;, &amp;#x438;, &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x44F; &amp;#x43C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x43D;&amp;#x43E;&amp;#x441;&amp;#x44F;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43A; &amp;#x43D;&amp;#x438;&amp;#x43C; &amp;#x441; &amp;#x43F;&amp;#x43E;&amp;#x434;&amp;#x43E;&amp;#x437;&amp;#x440;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;&amp;#x43C;, &amp;#x43E;&amp;#x43D;&amp;#x438;, &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x438;&amp;#x43B;&amp;#x43E;, &amp;#x43D;&amp;#x435; &amp;#x445;&amp;#x43E;&amp;#x442;&amp;#x44F;&amp;#x442; &amp;#x43D;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x434;&amp;#x443;&amp;#x440;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E;.&lt;/p&gt;&lt;p&gt;Python - &amp;#x430;&amp;#x442;&amp;#x435;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x41F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;, &amp;#x43D;&amp;#x435;&amp;#x442;&amp;#x440;&amp;#x435;&amp;#x431;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x435;&amp;#x43D;, &amp;#x43D;&amp;#x435; &amp;#x43D;&amp;#x443;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x432; &amp;#x447;&amp;#x451;&amp;#x43C;-&amp;#x43B;&amp;#x438;&amp;#x431;&amp;#x43E; &amp;#x43A;&amp;#x440;&amp;#x43E;&amp;#x43C;&amp;#x435; &amp;#x437;&amp;#x434;&amp;#x440;&amp;#x430;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x43C;&amp;#x44B;&amp;#x441;&amp;#x43B;&amp;#x430;. &amp;#x41C;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x438; &amp;#x443;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x436;&amp;#x434;&amp;#x430;&amp;#x44E;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x431;&amp;#x43E;&amp;#x434;&amp;#x438;&amp;#x43B;&amp;#x438;&amp;#x441;&amp;#x44C; &amp;#x43E;&amp;#x442; &amp;#x434;&amp;#x430;&amp;#x432;&amp;#x43B;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x445; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;&amp;#x43E;&amp;#x432; &amp;#x438; &amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x430; &amp;#x43E;&amp;#x442;&amp;#x43A;&amp;#x440;&amp;#x44B;&amp;#x43B;&amp;#x438; &amp;#x434;&amp;#x43B;&amp;#x44F; &amp;#x441;&amp;#x435;&amp;#x431;&amp;#x44F; &amp;#x443;&amp;#x434;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x438;&amp;#x435; &amp;#x43E;&amp;#x442; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x43C;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x44F;. &amp;#x415;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x436;&amp;#x435; &amp;#x43C;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; Python - &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x432;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x435; &amp;#x43F;&amp;#x441;&amp;#x435;&amp;#x432;&amp;#x434;&amp;#x43E;&amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;.&lt;/p&gt;&lt;p&gt;COBOL - &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x43E;. &amp;#x41A;&amp;#x43E;&amp;#x433;&amp;#x434;&amp;#x430;-&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x43D; &amp;#x431;&amp;#x44B;&amp;#x43B; &amp;#x432;&amp;#x435;&amp;#x441;&amp;#x44C;&amp;#x43C;&amp;#x430; &amp;#x440;&amp;#x430;&amp;#x441;&amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x451;&amp;#x43D; &amp;#x438; &amp;#x441;&amp;#x443;&amp;#x449;&amp;#x435;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x435;&amp;#x43D;; &amp;#x441;&amp;#x435;&amp;#x439;&amp;#x447;&amp;#x430;&amp;#x441; - &amp;#x43F;&amp;#x440;&amp;#x430;&amp;#x43A;&amp;#x442;&amp;#x438;&amp;#x447;&amp;#x435;&amp;#x441;&amp;#x43A;&amp;#x438; &amp;#x43C;&amp;#x451;&amp;#x440;&amp;#x442;&amp;#x432; (&amp;#x438; &amp;#x441;&amp;#x43B;&amp;#x430;&amp;#x432;&amp;#x430; &amp;#x431;&amp;#x43E;&amp;#x433;&amp;#x443;). &amp;#x425;&amp;#x43E;&amp;#x442;&amp;#x44F; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x440;&amp;#x438;&amp;#x442;&amp;#x443;&amp;#x430;&amp;#x43B;&amp;#x44B; &amp;#x43F;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x439; &amp;#x43F;&amp;#x443;&amp;#x433;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;, &amp;#x434;&amp;#x43E; &amp;#x441;&amp;#x438;&amp;#x445; &amp;#x43F;&amp;#x43E;&amp;#x440; &amp;#x43D;&amp;#x430;&amp;#x445;&amp;#x43E;&amp;#x434;&amp;#x44F;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43B;&amp;#x44E;&amp;#x434;&amp;#x438;, &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x438;&amp;#x435; &amp;#x43D;&amp;#x430; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x445;&amp;#x440;&amp;#x430;&amp;#x43D;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x438;.&lt;/p&gt;&lt;p&gt;APL - &amp;#x441;&amp;#x430;&amp;#x439;&amp;#x435;&amp;#x43D;&amp;#x442;&amp;#x43E;&amp;#x43B;&amp;#x43E;&amp;#x433;&amp;#x438;&amp;#x44F;. &amp;#x425;&amp;#x43E;&amp;#x442;&amp;#x44F; &amp;#x43A;&amp;#x443;&amp;#x447;&amp;#x430; &amp;#x43D;&amp;#x430;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x443; &amp;#x443;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x440;&amp;#x436;&amp;#x430;&amp;#x44E;&amp;#x442;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x441;&amp;#x43B;&amp;#x435;&amp;#x434;&amp;#x443;&amp;#x44E;&amp;#x442; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x439; &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x435;, &amp;#x432;&amp;#x430;&amp;#x43C; &amp;#x43F;&amp;#x43E;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x43D;&amp;#x43D;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439;-&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x43E;&amp;#x439; &amp;#x438; &amp;#x441;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43A;&amp;#x43E;&amp;#x43B;, &amp;#x432;&amp;#x44B;&amp;#x448;&amp;#x435;&amp;#x434;&amp;#x448;&amp;#x438;&amp;#x439; &amp;#x438;&amp;#x437;-&amp;#x43F;&amp;#x43E;&amp;#x434; &amp;#x43A;&amp;#x43E;&amp;#x43D;&amp;#x442;&amp;#x440;&amp;#x43E;&amp;#x43B;&amp;#x44F;.&lt;/p&gt;&lt;p&gt;LOLCODE - &amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x444;&amp;#x430;&amp;#x440;&amp;#x438;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x437;&amp;#x43C; (&amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;: &amp;#x432;&amp;#x435;&amp;#x440;&amp;#x430; &amp;#x432; &amp;#x41B;&amp;#x435;&amp;#x442;&amp;#x430;&amp;#x44E;&amp;#x449;&amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x41C;&amp;#x430;&amp;#x43A;&amp;#x430;&amp;#x440;&amp;#x43E;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x41C;&amp;#x43E;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x440;&amp;#x430;). &amp;#x418;&amp;#x441;&amp;#x43A;&amp;#x443;&amp;#x441;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43E;&amp;#x431;&amp;#x440;&amp;#x430;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;, &amp;#x43F;&amp;#x43E;&amp;#x44F;&amp;#x432;&amp;#x438;&amp;#x432;&amp;#x448;&amp;#x435;&amp;#x435;&amp;#x441;&amp;#x44F; &amp;#x432; &amp;#x418;&amp;#x43D;&amp;#x442;&amp;#x435;&amp;#x440;&amp;#x43D;&amp;#x435;&amp;#x442;&amp;#x435;, &amp;#x43A;&amp;#x43E;&amp;#x442;&amp;#x43E;&amp;#x440;&amp;#x43E;&amp;#x435; &amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43D;&amp;#x438;&amp;#x43C;&amp;#x430;&amp;#x435;&amp;#x442; &amp;#x432;&amp;#x441;&amp;#x435;&amp;#x440;&amp;#x44C;&amp;#x451;&amp;#x437;, &amp;#x43D;&amp;#x435;&amp;#x441;&amp;#x43C;&amp;#x43E;&amp;#x442;&amp;#x440;&amp;#x44F; &amp;#x43D;&amp;#x430; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x43A;&amp;#x438; &amp;#x435;&amp;#x433;&amp;#x43E; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x432;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x438; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x43F;&amp;#x430;&amp;#x433;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x438;&amp;#x440;&amp;#x43E;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C;. &amp;#x415;&amp;#x449;&amp;#x451; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x43E; &amp;#x43F;&amp;#x440;&amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x432;&amp;#x43E;&amp;#x434;&amp;#x447;&amp;#x438;&amp;#x43A;&amp;#x430;: &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x442;&amp;#x430;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x441; &amp;#x43A;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x442;&amp;#x43E;&amp;#x43C; &amp;#x41A;&amp;#x442;&amp;#x443;&amp;#x43B;&amp;#x445;&amp;#x443; (&amp;#x43A;&amp;#x441;&amp;#x442;&amp;#x430;&amp;#x442;&amp;#x438;, &amp;#x430; &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x43A;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x439; &amp;#x44F;&amp;#x437;&amp;#x44B;&amp;#x43A;?)&lt;/p&gt;&lt;p&gt;Visual Basic - &amp;#x441;&amp;#x430;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x437;&amp;#x43C;. &amp;#x415;&amp;#x434;&amp;#x438;&amp;#x43D;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;&amp;#x435; &amp;#x43E;&amp;#x442;&amp;#x43B;&amp;#x438;&amp;#x447;&amp;#x438;&amp;#x435; &amp;#x432; &amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x44B;&amp;#x442;&amp;#x44C; &amp;#x441;&amp;#x430;&amp;#x442;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x43C;, &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x434;&amp;#x430;&amp;#x432;&amp;#x430;&amp;#x44F; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x44E; &amp;#x434;&amp;#x443;&amp;#x448;&amp;#x443;, &amp;#x432;&amp;#x441;&amp;#x451;-&amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x438; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E;.&lt;/p&gt;&lt;p&gt;&amp;#x421;&amp;#x43F;&amp;#x430;&amp;#x441;&amp;#x438;&amp;#x431;&amp;#x43E; jfs &amp;#x438; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x438;&amp;#x43C; &amp;#x443;&amp;#x447;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43D;&amp;#x438;&amp;#x43A;&amp;#x430;&amp;#x43C; &amp;#x43A;&amp;#x430;&amp;#x43D;&amp;#x430;&amp;#x43B;&amp;#x430; #aegisub &amp;#x437;&amp;#x430; &amp;#x446;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x435; &amp;#x43F;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x43B;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;. &amp;#x41D;&amp;#x435; &amp;#x437;&amp;#x430;&amp;#x431;&amp;#x443;&amp;#x434;&amp;#x44C;&amp;#x442;&amp;#x435;, &amp;#x44D;&amp;#x442;&amp;#x43E; &amp;#x448;&amp;#x443;&amp;#x442;&amp;#x43A;&amp;#x430;, &amp;#x430; &amp;#x432;&amp;#x43E;&amp;#x432;&amp;#x441;&amp;#x435; &amp;#x43D;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x43A;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x433;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x43E;&amp;#x441;&amp;#x43A;&amp;#x43E;&amp;#x440;&amp;#x431;&amp;#x438;&amp;#x442;&amp;#x44C;. &amp;#x410; &amp;#x435;&amp;#x441;&amp;#x43B;&amp;#x438; &amp;#x432;&amp;#x44B; &amp;#x43C;&amp;#x443;&amp;#x441;&amp;#x443;&amp;#x43B;&amp;#x44C;&amp;#x43C;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x43D;, &amp;#x43D;&amp;#x435; &amp;#x443;&amp;#x431;&amp;#x438;&amp;#x432;&amp;#x430;&amp;#x439;&amp;#x442;&amp;#x435; &amp;#x43C;&amp;#x435;&amp;#x43D;&amp;#x44F;, &amp;#x43F;&amp;#x43E;&amp;#x436;&amp;#x430;&amp;#x43B;&amp;#x443;&amp;#x439;&amp;#x441;&amp;#x442;&amp;#x430;.&lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B8-%D0%B5%D1%89%D1%91-%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:migmit:24802</id>
    <link rel="alternate" type="text/html" href="http://migmit.livejournal.com/24802.html"/>
    <link rel="self" type="text/xml" href="http://migmit.livejournal.com/data/atom/?itemid=24802"/>
    <title>On Vox: Записки маньяка</title>
    <published>2008-12-16T16:27:18Z</published>
    <updated>2008-12-16T16:27:18Z</updated>
    <content type="html">&lt;p&gt;&amp;#x411;&amp;#x44D;&amp;#x43A;&amp;#x433;&amp;#x440;&amp;#x430;&amp;#x443;&amp;#x43D;&amp;#x434;. &amp;#x422;&amp;#x435;, &amp;#x43A;&amp;#x442;&amp;#x43E; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x435;&amp;#x442; Ruby - &amp;#x43F;&amp;#x440;&amp;#x43E;&amp;#x43F;&amp;#x443;&amp;#x441;&amp;#x442;&amp;#x438;&amp;#x442;&amp;#x435;.&lt;/p&gt;&lt;p&gt;&amp;#x412; &amp;#x440;&amp;#x443;&amp;#x431;&amp;#x44F;&amp;#x445; &amp;#x435;&amp;#x441;&amp;#x442;&amp;#x44C; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x430;&amp;#x44F; &amp;#x444;&amp;#x438;&amp;#x448;&amp;#x43A;&amp;#x430; - &amp;#x441;&amp;#x43E;&amp;#x431;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;, &amp;#x43E;&amp;#x441;&amp;#x43D;&amp;#x43E;&amp;#x432;&amp;#x43D;&amp;#x430;&amp;#x44F; - &amp;#x43A;&amp;#x430;&amp;#x43A; "&amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x438;". &amp;#x41A;&amp;#x430;&amp;#x436;&amp;#x434;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x443; &amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x43E;&amp;#x434;&amp;#x430; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x434;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43A;&amp;#x430;&amp;#x43A; &amp;#x431;&amp;#x44B; &amp;#x434;&amp;#x43E;&amp;#x43F;&amp;#x43E;&amp;#x43B;&amp;#x43D;&amp;#x438;&amp;#x442;&amp;#x435;&amp;#x43B;&amp;#x44C;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x43F;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x440; - &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;. &amp;#x42D;&amp;#x442;&amp;#x438; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x438; &amp;#x43D;&amp;#x435; &amp;#x44F;&amp;#x432;&amp;#x43B;&amp;#x44F;&amp;#x44E;&amp;#x442;&amp;#x441;&amp;#x44F; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x449;&amp;#x438;&amp;#x43C;&amp;#x438; &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x435;&amp;#x43D;&amp;#x438;&amp;#x44F;&amp;#x43C;&amp;#x438; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x43E;&amp;#x433;&amp;#x43E; &amp;#x43A;&amp;#x43B;&amp;#x430;&amp;#x441;&amp;#x441;&amp;#x430;; &amp;#x43E;&amp;#x434;&amp;#x43D;&amp;#x430;&amp;#x43A;&amp;#x43E;, &amp;#x432;&amp;#x43D;&amp;#x443;&amp;#x442;&amp;#x440;&amp;#x438; &amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x43E;&amp;#x434;&amp;#x430; &amp;#x438;&amp;#x445; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x442;&amp;#x44C;.&lt;/p&gt;&lt;p&gt;&amp;#x41C;&amp;#x435;&amp;#x442;&amp;#x43E;&amp;#x434;:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; white-space: -moz-pre-wrap"&gt;&lt;br /&gt;class SomeClass&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; ...&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; def someMethod&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ... # &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x443;&amp;#x442; &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x435;&amp;#x43C;&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; yield # &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x44B;&amp;#x432;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0; ... # &amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x435;&amp;#x43C; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x435;&amp;#x449;&amp;#x451;&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; end&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; ...&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x415;&amp;#x433;&amp;#x43E; &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x43E;&amp;#x432;:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; white-space: -moz-pre-wrap"&gt;&lt;br /&gt;someInstance = SomeClass.new&lt;br /&gt;...&lt;br /&gt;someInstance.someMethod {... &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430; ...}&lt;br /&gt;
&lt;/pre&gt;&lt;br /&gt;&amp;#x412;&amp;#x43E;&amp;#x442;, &amp;#x437;&amp;#x43D;&amp;#x430;&amp;#x447;&amp;#x438;&amp;#x442;. &amp;#x41A;&amp;#x43E;&amp;#x43C;&amp;#x430;&amp;#x43D;&amp;#x434;&amp;#x430; yield &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x43E;&amp;#x432;&amp;#x435;&amp;#x442; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x442; &amp;#x441;&amp;#x430;&amp;#x43C;&amp;#x44B;&amp;#x439; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;.&lt;/p&gt;&lt;p&gt;&amp;#x417;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x447;&amp;#x430;&amp;#x43D;&amp;#x438;&amp;#x435;: &amp;#x438;&amp;#x437; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x430; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x43D;&amp;#x43E; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x43D;&amp;#x430;&amp;#x441;&amp;#x442;&amp;#x43E;&amp;#x44F;&amp;#x449;&amp;#x443;&amp;#x44E; &amp;#x43B;&amp;#x44F;&amp;#x43C;&amp;#x431;&amp;#x434;&amp;#x430;-&amp;#x444;&amp;#x443;&amp;#x43D;&amp;#x43A;&amp;#x446;&amp;#x438;&amp;#x44E;, &amp;#x442;&amp;#x430;&amp;#x43A; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x433;&amp;#x43E;&amp;#x432;&amp;#x43E;&amp;#x440;&amp;#x438;&amp;#x442;&amp;#x435;, &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x43D;&amp;#x435; &amp;#x442;&amp;#x430;&amp;#x43A;.&lt;/p&gt;&lt;p&gt;&amp;#x414;&amp;#x430;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x435; - &amp;#x431;&amp;#x43E;&amp;#x43B;&amp;#x44C;&amp;#x448;&amp;#x435;. &amp;#x41F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A; &amp;#x43C;&amp;#x43E;&amp;#x436;&amp;#x435;&amp;#x442; &amp;#x438;&amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x44C; &amp;#x43F;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x440;&amp;#x44B; - &amp;#x441;&amp;#x43A;&amp;#x430;&amp;#x436;&amp;#x435;&amp;#x43C;, &amp;#x442;&amp;#x430;&amp;#x43A;:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; white-space: -moz-pre-wrap"&gt;&lt;br /&gt;
someInstance.someMethod {|i j| ... if i&amp;gt;j then...}&lt;br /&gt;

&lt;/pre&gt;&lt;br /&gt;&amp;#x421;&amp;#x43E;&amp;#x43E;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x442;&amp;#x432;&amp;#x435;&amp;#x43D;&amp;#x43D;&amp;#x43E;, &amp;#x43F;&amp;#x430;&amp;#x440;&amp;#x430;&amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x440;&amp;#x44B; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x44E;&amp;#x442;&amp;#x441;&amp;#x44F; yield:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; white-space: -moz-pre-wrap"&gt;&lt;br /&gt;
yield(1,2);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x41D;&amp;#x443;, &amp;#x438; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x43C;&amp;#x430;&amp;#x43D;&amp;#x44C;&amp;#x44F;&amp;#x43A; &amp;#x432; &amp;#x43C;&amp;#x43E;&amp;#x451;&amp;#x43C; &amp;#x43B;&amp;#x438;&amp;#x446;&amp;#x435; &amp;#x43F;&amp;#x43E;&amp;#x43F;&amp;#x44B;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x441;&amp;#x44F; &amp;#x441;&amp;#x434;&amp;#x435;&amp;#x43B;&amp;#x430;&amp;#x442;&amp;#x44C; &amp;#x432; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x432;&amp;#x443;&amp;#x44E; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x44C;? &amp;#x41D;&amp;#x443; &amp;#x440;&amp;#x430;&amp;#x437;&amp;#x443;&amp;#x43C;&amp;#x435;&amp;#x435;&amp;#x442;&amp;#x441;&amp;#x44F;, &amp;#x447;&amp;#x442;&amp;#x43E;-&amp;#x442;&amp;#x43E; &amp;#x442;&amp;#x430;&amp;#x43A;&amp;#x43E;&amp;#x435;:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; white-space: -moz-pre-wrap"&gt;&lt;br /&gt;...&lt;br /&gt;def someMethod&lt;br /&gt;&amp;#xA0;&amp;#xA0;&amp;#xA0; yield {&amp;#x431;&amp;#x43B;&amp;#x430;-&amp;#x431;&amp;#x43B;&amp;#x430;-&amp;#x431;&amp;#x43B;&amp;#x430;}&lt;br /&gt;end&lt;br /&gt;...&lt;br /&gt;someInstance.someMethod {yield}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;#x421; &amp;#x442;&amp;#x435;&amp;#x43C;, &amp;#x447;&amp;#x442;&amp;#x43E;&amp;#x431;&amp;#x44B; &amp;#x43C;&amp;#x435;&amp;#x442;&amp;#x43E;&amp;#x434; &amp;#x432;&amp;#x44B;&amp;#x437;&amp;#x432;&amp;#x430;&amp;#x43B; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x43D;&amp;#x43D;&amp;#x44B;&amp;#x439; &amp;#x435;&amp;#x43C;&amp;#x443; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;, &amp;#x432; &amp;#x441;&amp;#x432;&amp;#x43E;&amp;#x44E; &amp;#x43E;&amp;#x447;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x44C; &amp;#x43F;&amp;#x435;&amp;#x440;&amp;#x435;&amp;#x434;&amp;#x430;&amp;#x432; &amp;#x44D;&amp;#x442;&amp;#x43E;&amp;#x43C;&amp;#x443; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A;&amp;#x443; &amp;#x434;&amp;#x440;&amp;#x443;&amp;#x433;&amp;#x43E;&amp;#x439; &amp;#x431;&amp;#x43B;&amp;#x43E;&amp;#x43A; &amp;#x43A;&amp;#x43E;&amp;#x434;&amp;#x430;.&lt;/p&gt;&lt;p&gt;&amp;#x418; &amp;#x447;&amp;#x442;&amp;#x43E; &amp;#x431;&amp;#x44B; &amp;#x432;&amp;#x44B; &amp;#x434;&amp;#x443;&amp;#x43C;&amp;#x430;&amp;#x43B;&amp;#x438;?&lt;/p&gt;&lt;p&gt;&amp;#x41D;&amp;#x435; &amp;#x441;&amp;#x440;&amp;#x430;&amp;#x431;&amp;#x43E;&amp;#x442;&amp;#x430;&amp;#x43B;&amp;#x43E;.&lt;br /&gt; &lt;/p&gt;
&lt;p&gt;Originally posted on &lt;a href="http://migmit.vox.com/library/post/%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%BA%D0%B8-%D0%BC%D0%B0%D0%BD%D1%8C%D1%8F%D0%BA%D0%B0.html"&gt;migmit.vox.com&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
</feed>
