<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Функционално програмиране</title>
	<atom:link href="http://skanev.com/2007/02/16/functional-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://skanev.com/2007/02/16/functional-programming/</link>
	<description>Блогът на Стефан Кънев</description>
	<pubDate>Thu, 20 Nov 2008 10:12:24 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: pp9536</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-45</link>
		<dc:creator>pp9536</dc:creator>
		<pubDate>Fri, 04 May 2007 11:18:52 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-45</guid>
		<description>В началото бе LISP!</description>
		<content:encoded><![CDATA[<p>В началото бе LISP!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: николай</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-21</link>
		<dc:creator>николай</dc:creator>
		<pubDate>Mon, 26 Feb 2007 07:13:46 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-21</guid>
		<description>C++ върви напред главно заради &lt;a href="http://boost.org/" rel="nofollow"&gt;Boost&lt;/a&gt;. Даже има сериозен шанс (още не се случило) Boost да стане част от C++ стандарта.

Радващо е, че можем да пишем много бърз с високо ниво на абстракция, но това също си има цена.  Основната цел на функционалното програмиране е хем да пишем код много по-бързо (заради абстракцията), хем той да е по-четим, разбираем и ествествен.

C++ &#38; Boost успява само във второто и само донякъде.

Първо, покрай всичките template-и синтаксисът се натоварва неимоверно много с ъглови скоби, които, не, не могат да се разглеждат като аналог на скобите в lisp. В C++ те нямат същата структурна роля и по-скоро пречат на четимостта.

И второ - програмите се компилират много бавно. Освен, че се компилират, което от своя страна ни забавя доста, те се и компилират бавно. Това означава, че дори да сме си автоматизирали процеса по запазване/компилиране/изпълнение, то пак ще губим много време да чакаме препроцесора да се справи с бесните template-и.

И все пак идеята за high-order C++ не е толкова лоша :-) Просто има по-ограничена среда на използване - в приложенията, за които бързодесйтвието е наистина критично. А все повече приложения не са точно такива...</description>
		<content:encoded><![CDATA[<p>C++ върви напред главно заради <a href="http://boost.org/" rel="nofollow">Boost</a>. Даже има сериозен шанс (още не се случило) Boost да стане част от C++ стандарта.</p>
<p>Радващо е, че можем да пишем много бърз с високо ниво на абстракция, но това също си има цена.  Основната цел на функционалното програмиране е хем да пишем код много по-бързо (заради абстракцията), хем той да е по-четим, разбираем и ествествен.</p>
<p>C++ &amp; Boost успява само във второто и само донякъде.</p>
<p>Първо, покрай всичките template-и синтаксисът се натоварва неимоверно много с ъглови скоби, които, не, не могат да се разглеждат като аналог на скобите в lisp. В C++ те нямат същата структурна роля и по-скоро пречат на четимостта.</p>
<p>И второ&mdash;програмите се компилират много бавно. Освен, че се компилират, което от своя страна ни забавя доста, те се и компилират бавно. Това означава, че дори да сме си автоматизирали процеса по запазване/компилиране/изпълнение, то пак ще губим много време да чакаме препроцесора да се справи с бесните template-и.</p>
<p>И все пак идеята за high-order C++ не е толкова лоша <img src='http://skanev.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Просто има по-ограничена среда на използване&mdash;в приложенията, за които бързодесйтвието е наистина критично. А все повече приложения не са точно такива&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dan</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-20</link>
		<dc:creator>dan</dc:creator>
		<pubDate>Sat, 24 Feb 2007 16:31:51 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-20</guid>
		<description>Не подценявай ц++, езика се променя и е коренно различен от преди 10 години. И има анонимни функции(lambda).</description>
		<content:encoded><![CDATA[<p>Не подценявай ц++, езика се променя и е коренно различен от преди 10 години. И има анонимни функции(lambda).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aquarius</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-6</link>
		<dc:creator>Aquarius</dc:creator>
		<pubDate>Fri, 16 Feb 2007 22:31:31 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-6</guid>
		<description>Това е много силно казано closure, защото промени в променливата няма да останат забелязани. Да не говорим, че reference към обект дори не можеш да си помислиш да подадеш. Така че се придържам към тезата си - &lt;acronym title="Personal Home Page"&gt;PHP&lt;/acronym&gt; няма closure-и.</description>
		<content:encoded><![CDATA[<p>Това е много силно казано closure, защото промени в променливата няма да останат забелязани. Да не говорим, че reference към обект дори не можеш да си помислиш да подадеш. Така че се придържам към тезата си&mdash;<acronym title="Personal Home Page">PHP</acronym> няма closure-и.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Кирил</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-5</link>
		<dc:creator>Кирил</dc:creator>
		<pubDate>Fri, 16 Feb 2007 21:35:48 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-5</guid>
		<description>този блог пее за код и гръндж! започвам да го харесвам :)</description>
		<content:encoded><![CDATA[<p>този блог пее за код и гръндж! започвам да го харесвам <img src='http://skanev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Петьо</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-4</link>
		<dc:creator>Петьо</dc:creator>
		<pubDate>Fri, 16 Feb 2007 12:28:06 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-4</guid>
		<description>Убаво е да се спомене и JavaScript-а (Или по-скоро ECMAScript) като език с възможности в областта. &lt;a href="http://www.paulgraham.com/articles.html" rel="nofollow"&gt;Пол Греъм&lt;/a&gt; му вика "Lisp in C clothes". Специално prototype библиотеката ти дава всичките благинки като array#map, array#each и тн. Напоследък много чета &lt;a href="http://weblog.raganwald.com/" rel="nofollow"&gt;Raganwald&lt;/a&gt; - има интересни работи по темата.</description>
		<content:encoded><![CDATA[<p>Убаво е да се спомене и JavaScript-а (Или по-скоро ECMAScript) като език с възможности в областта. <a href="http://www.paulgraham.com/articles.html" rel="nofollow">Пол Греъм</a> му вика &#8222;Lisp in C clothes&#8220;. Специално prototype библиотеката ти дава всичките благинки като array#map, array#each и тн. Напоследък много чета <a href="http://weblog.raganwald.com/" rel="nofollow">Raganwald</a>&mdash;има интересни работи по темата.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: николай</title>
		<link>http://skanev.com/2007/02/16/functional-programming/#comment-3</link>
		<dc:creator>николай</dc:creator>
		<pubDate>Fri, 16 Feb 2007 08:33:17 +0000</pubDate>
		<guid isPermaLink="false">http://skanev.com/archives/3#comment-3</guid>
		<description>А, не си прав, че в &lt;acronym title="PHP Hypertext Processor"&gt;PHP&lt;/acronym&gt; не може да си направиш closure. Тъй като тялото на функцията в &lt;code&gt;create_function&lt;/code&gt; се задава като низ, то спокойно можеш да ползваш заместването на променливите и да си свършиш работата:

&lt;code&gt;&lt;pre&gt;$type = &#39;baba&#39;;
...
$a = array_filter($a, create_function(&#39;$x&#39;, 
    &#34;return (\$x-&#62;type == &#39;$type&#39;)&#34;));
&lt;/pre&gt;&lt;/code&gt;
</description>
		<content:encoded><![CDATA[<p>А, не си прав, че в <acronym title="PHP Hypertext Processor">PHP</acronym> не може да си направиш closure. Тъй като тялото на функцията в <code>create_function</code> се задава като низ, то спокойно можеш да ползваш заместването на променливите и да си свършиш работата:</p>
<p><code>
<pre>$type = &#39;baba&#39;;
...
$a = array_filter($a, create_function(&#39;$x&#39;,
    &quot;return (\$x-&gt;type == &#39;$type&#39;)&quot;));
</pre>
<p></code></p>
]]></content:encoded>
	</item>
</channel>
</rss>
